不需要配置免密登陆,即可执行
/etc/ansible/hosts 文件配置
sudo.yml文件配置
- hosts: test
sudo_user: cloud
sudo: yes
tasks:
- name: echo /root/hosts
shell: echo "127.0.0.1 hostname " >> /root/hosts
ignore_errors: True
become: true
become_user: root
执行结果:
become的官方文档说明
官方文档:http://docs.ansible.com/ansible/become.html
关于become 的使用,当需要执行某些特殊操作需要专门权限时,可以用become_user那强调切换,同时1.9 版本以前的sudo_user 也依然保留使用;
当使用了beocome_user时,并且指定需要sudo,需要在hosts 文件指定ansible_sudo_pass 密码,否则become_user 使用sudo 进行操作时无权限执行,不会成功。比如我这里用cloud 账号执行 echo "127.0.0.1 hostname" >>/root/hosts 需要sudo 权限的,所以用 become_user: root,并且指定了ansible_sudo_pass 密码,这样就可以顺利的执行了。