ansible 批量推送 ansible_ssh_pass + ansible_sudo_pass+ become 使用案例
2016-08-09 17:05
330 查看
使用ansible 也有好长时间了,以前的机器都是做好的模板,配置了ssh 无密码登陆,推送起来一般很方便。今天闲来无事,刚好手头也有个事情做,将明文密码推送的样例贴出来共享。
直入主题,
需求:修改一批机器的Hosts 文件,需要sudo 权限,并且sudo 账号(我这里是centos账号,)没有配置ssh 无密码登陆。(但是centos 账号都已经在/etc/sudoers 里面加过sudo 权限)
这里本人想偷懒,不想一台台再去配置免密钥ssh 登陆,就索性用ansible 明文密码推送来完成这个功能。
注:关于ansilbe 的安装,yml 文件使用,ssh 免秘钥登陆,hosts 文件入门配置不在本文讲解范围内。入门帖子应该网上是巨多的。
第一步:配置/etc/ansible/hosts 文件,设置管理组;
第二步:配置yml 文件,批量执行需要的动作
第三步:ansible-playbook 批量执行:
关键点补充说明:
官方文档:http://docs.ansible.com/ansible/become.html
关于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
直入主题,
需求:修改一批机器的Hosts 文件,需要sudo 权限,并且sudo 账号(我这里是centos账号,)没有配置ssh 无密码登陆。(但是centos 账号都已经在/etc/sudoers 里面加过sudo 权限)
这里本人想偷懒,不想一台台再去配置免密钥ssh 登陆,就索性用ansible 明文密码推送来完成这个功能。
注:关于ansilbe 的安装,yml 文件使用,ssh 免秘钥登陆,hosts 文件入门配置不在本文讲解范围内。入门帖子应该网上是巨多的。
第一步:配置/etc/ansible/hosts 文件,设置管理组;
第二步:配置yml 文件,批量执行需要的动作
第三步:ansible-playbook 批量执行:
关键点补充说明:
官方文档:http://docs.ansible.com/ansible/become.html
关于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
相关文章推荐
- 基于 ANSIBLE 自动化运维实践
- Linux Generating SSH Keys
- perl脚本实现限制ssh最大登录次数(支持白名单)
- rsync ssh 数据同步分析
- 搭建SSH时的思考和遇到的几个问题的解决方法
- SSH框架网上商城项目第9战之添加和更新商品类别功能实现
- SSH框架网上商城项目第7战之整合Struts2和Json
- SSH 使用原理 与解释
- SSH整合中 hibernate托管给Spring得到SessionFactory
- Linux VPS利用SSH重置ROOT密码的方法
- SSH框架网上商城项目第15战之线程、定时器同步首页数据
- SSH框架网上商城项目第18战之过滤器实现购物登录功能的判断
- ssh,scp自动登陆的实现方法
- linux下使用ssh远程执行命令批量导出数据库到本地
- shell脚本实现ssh自动登录功能分享
- linux下ssh安装与scp命令使用详解
- ssh项目环境搭建步骤(web项目)
- 脚本实现SSH登录邮件报警
- SSH框架网上商城项目第21战之详解易宝支付的流程