码迷,mamicode.com
首页 > 其他好文 > 详细

ansible 批量推送 ansible_ssh_pass + ansible_sudo_pass+ become 使用案例

时间:2016-08-10 01:12:16      阅读:2327      评论:0      收藏:0      [点我收藏+]

标签:become   ansible   ssh_pass_user   

使用ansible 也有好长时间了,以前的机器都是做好的模板,配置了ssh 无密码登陆,推送起来一般很方便。今天闲来无事,刚好手头也有个事情做,将明文密码推送的样例贴出来共享。




直入主题,

需求:修改一批机器的Hosts 文件,需要sudo 权限,并且sudo 账号(我这里是centos账号,)没有配置ssh 无密码登陆。(但是centos 账号都已经在/etc/sudoers 里面加过sudo 权限)







这里本人想偷懒,不想一台台再去配置免密钥ssh 登陆,就索性用ansible 明文密码推送来完成这个功能。

注:关于ansilbe 的安装,yml 文件使用,ssh 免秘钥登陆,hosts 文件入门配置不在本文讲解范围内。入门帖子应该网上是巨多的。






第一步:配置/etc/ansible/hosts 文件,设置管理组;

技术分享






第二步:配置yml 文件,批量执行需要的动作


技术分享






第三步:ansible-playbook 批量执行:

技术分享

技术分享




关键点补充说明:

  1. 官方文档:http://docs.ansible.com/ansible/become.html



  1. 关于become 的使用,当需要执行某些特殊操作需要专门权限时,可以用become_user那强调切换,同时1.9 版本以前的sudo_user 也依然保留使用;


技术分享


2.当使用了beocome_user时,并且指定需要sudo,需要在hosts 文件指定ansible_sudo_pass 密码,否则become_user 使用sudo 进行操作时无权限执行,不会成功。比如我这里用centos 账号执行 echo "127.0.0.1 $(hostname)" >>/etc/hosts 需要sudo 权限的,所以用 become_user: root,并且指定了ansible_sudo_pass 密码,这样就可以顺利的执行了。


技术分享

技术分享



最后贴上yml文件以供参考:


---


- hosts: office-zhaoman-spider


  sudo_user: centos


  sudo: yes


  tasks:


  - name: echo /etc/hosts


    shell:  echo "127.0.0.1  $(hostname) " >> /etc/hosts 


    ignore_errors: True


    become: true

    become_user: root



  - name: cat  /etc/hosts


    shell:   cat  /etc/hosts 


    ignore_errors: false




  - shell: cat /etc/hosts


    register: ps


  - debug: var=ps.stdout_lines







本文出自 “好先生2020” 博客,请务必保留此出处http://fuyuan2016.blog.51cto.com/8678344/1836199

ansible 批量推送 ansible_ssh_pass + ansible_sudo_pass+ become 使用案例

标签:become   ansible   ssh_pass_user   

原文地址:http://fuyuan2016.blog.51cto.com/8678344/1836199

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!