我的loginuser是user1,我想用root执行playbook。我怎样才能做到这一点。如果我在cmdline中使用它不会像这样工作
ansible-playbook main.yaml -i hosts --user=git -k --become-user=root --ask-become-pass --become-method=su
请告诉我如何实现这一点。
name: Install and Configure IEM
hosts: rhel
ansible_become: yes
ansible_become_method: su
ansible_become_user: root
ansible_become_pass: passw0rd
tasks:
- name: Creating masthead file path
file: path=/etc/opt/BESClient state=directory
- name: Creating install directory
答案 0 :(得分:23)
我用:
<强> deploy.yml 强>
- name: Todo something
hosts: all
become: yes
become_user: root
become_method: su
执行playbook时,将密码作为额外的var。
传递 --extra-vars='ansible_become_pass=password'
答案 1 :(得分:4)
来自Ansible docs:
become_user
和become_user
; ansible_become_user
,ansible_become_user
等。这就是您在问题中提供的剧本不起作用的原因:它使用了广告资源中使用的变量名称。答案 2 :(得分:0)
tasks:
- name: install apache package
become: yes
become_user: root
yum:
name: httpd
state: present
- name: ensure apache is running
become: yes
become_user: root
service:
name: httpd
state: started