Ansible 如何定义登录用户并成为playbook中的root用户
我的登录用户是user1,我想用root执行playbook。我怎样才能做到这一点。如果我在cmdline中使用它,它不会像这样工作Ansible 如何定义登录用户并成为playbook中的root用户,ansible,Ansible,我的登录用户是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-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
我使用:
部署.yml
- name: Todo something
hosts: all
become: yes
become_user: root
become_method: su
执行playbook时,将密码作为额外变量传递
--extra-vars='ansible_become_pass=password'
发件人:
- 您可以在剧本中将这些设置为@Raul Hugo,使用
和been_user
李>been_user
- 或者,也可以在资源清册中完成,这允许按主机或组进行设置。但是变量得到了“ansible_”前缀:
,ansible_been_user
,等等。这就是你在问题中给出的剧本不起作用的原因:它使用了清单中使用的变量名ansible_been_user
欢迎来到SO,当问问题时请更具体一点:您尝试了什么,您期望什么,等等。请看,您最好使用
--ask been pass
标志,而不是通过--extra vars
传递密码,因为通过--extra vars
将密码存储在您的历史记录中(即bash中的~/.bash\u history
)。为了安全起见,您可以将密码存储在vault中。由于变量ansible\u ssh\u private\u key\u file
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