Tôi đang tạo một playbook trước tiên tạo tên người dùng mới. Sau đó tôi muốn chạy "moretasks.yml" là người dùng mới mà tôi vừa tạo. Hiện tại, tôi đang thiết lập remote_user cho mọi công việc. Có cách nào tôi có thể đặt nó cho toàn bộ các tác vụ một lần không? Tôi dường như không thể tìm thấy ví dụ về điều này, cũng không phải bất kỳ nỗ lực của tôi để di chuyển remote_user xung quanh giúp đỡ.Đặt remote_user cho tập hợp các tác vụ trong Playbook Ansible mà không lặp lại nó cho mỗi tác vụ
Dưới đây là main.yml:
---
- name: Configure Instance(s)
hosts: all
remote_user: root
gather_facts: true
tags:
- config
- configure
tasks:
- include: createuser.yml new_user=username
- include: moretasks.yml new_user=username
- include: roottasks.yml #some tasks unrelated to username.
moretasks.yml:
---
- name: Task1
copy:
src: /vagrant/FILE
dest: ~/FILE
remote_user: "{{newuser}}"
- name: Task2
copy:
src: /vagrant/FILE
dest: ~/FILE
remote_user: "{{newuser}}"
Tôi nghĩ sudo_user là một trong đó thực hiện chỉ khi bạn cần phải làm một số hành động sudo? Tôi muốn lưu ý, người dùng tôi đang tạo không có đặc quyền sudo. Tất cả các hành động trong "moretasks" là địa phương đến nhà của họ. Nó vẫn còn thích hợp (gây hiểu lầm?) Để sử dụng phương pháp tiếp cận sudo_user? (Cách tiếp cận đã hoạt động) – Shark
Bạn nói đúng, @Shark. Từ tài liệu, sudo_user: Đây là người dùng mặc định cho sudo nếu người dùng không được chỉ định hoặc 'sudo_user' không được chỉ định trong một Playbook Ansible. Mặc định là hợp lý nhất: ‘root’. – Esteban
Lưu ý rằng 'sudo' và' sudo_user' đã không được dùng để ủng hộ 'trở thành' và' trở thành_user'. http://docs.ansible.com/ansible/become.html#become – kkurian