设为首页 收藏本站
查看: 664|回复: 0

[经验分享] Ansible之玩转常见运维场景(个人总结)

[复制链接]

尚未签到

发表于 2018-7-30 07:21:25 | 显示全部楼层 |阅读模式
  一、环境描述
  Ansible管理节点:192.168.1.101
  被管理节点1:192.168.1.135
  被管理节点2:192.168.1.128
  二、Ansible实现
  1、实现管理节点和被管理节点免ssh密码
  思路:在ansible管理节点上生成一对ssh密钥,并把管理节点的公钥拷贝给被管理节点
  1.1、ansible管理节点生成ssh密钥
  root@mysql02:~/.ssh# ssh-keygen

  1.2、拷贝ansible管理节点的公钥文件到被管理主机
  1.2.1、在管理节点上将公钥传送到被管理节点上
  root@mysql02:~/.ssh# ssh-copy-id root@192.168.1.135
  说明:id_rsa.pub文件为公钥文件,id_rsa为私钥文件
  1.2.3、如果不做ssh免密码,在管理节点上进行让被管理节点执行hostname命令,则出现如下错误

  1.2.4、将管理节点的ssh公钥拷贝到被管理节点后,一切正常

  2、管理节点配置
  2.1、查看ansilbe有哪些模块
  #ansible-doc -l


  模块名称:command 作用:在远程节点上执行命令
  2.2、定义主机和组
  root@mysql02:~# cd /etc/ansible/
  root@mysql02:/etc/ansible# vim hosts

  目前只看hosts文件,其它先不用管。Hosts配置文件中的 [webservers],[dbservers]这两行的作用是定义主机组,主机组名下可以写成员主机的IP(或域名),这是后可以把我需要管理的主机IP放到[webservers]或[dbservers]主机组下。目前,我这里的被管理节点有两台,都在主机组[webservers]里,IP是192.168.1.135和192.168.1.128
  3、运维场景1(在被管理节点上执行相关的shell命令)
  3.1、小栗子,截取IP地址
  shell_cmd=`ifconfig |grep 'inet 地址'|grep '192.168.1' | grep -v 'grep' | awk '{print $2}'| tr -d "地址:"`
  root@mysql02:/etc/ansible# ansible webservers -m command -a 'echo $shell_cmd'

  功能解析:将截取IP地址的命令赋值给shell_cmd变量,然后通过ansible执行'echo $shell_cmd'命令打印出截取到的IP地址。
  参数说明:
  其中webservers是主机组名称,在该主机组名称下的所有主机都会运行uptime命令,-m后是模块名称,-a 后是模块参数。
  4、运维场景2(在管理节点上执行shell脚本,脚本在被管理节点上)
  小栗子:
  在被管理节点上的/root/目录中有osd.sh脚本,内容如下:

  root@mysql02:~# ansible webservers -m shell -a '/root/osd.sh'

  5、运维场景3(脚本在主控端(管理节点),但需要在客户机上执行,可以用script模块)
  脚本动作如下:
  1、在tmp目录下创建一个文件夹
  2、在新创建的文件下创建一个txt文件

  5.1、开始在ansible管理节点上运行
  root@mysql02:~# ansible webservers -m script -a '/root/test.sh'

  5.2、在被管理节点上验证

  结果:已成功完成任务
  6、运维场景4(文件发布或称文件下发)
  场景描述:在我的管理节点中的root目录里存在一个zabbix_3.0.4.orig.tar.gz文件,这个文件需要批量下发给被管理节点。
  6.1、ansible管理节点上开始执行
  root@mysql02:~# ansible webservers -m copy -a 'dest=/tmp src=/root/zabbix_3.0.4.orig.tar.gz'

  6.2、验证被管理节点

  结果:文件下发成功
  7、运维场景5(需要在被管理节点上安装软件,如通过:apt-get或yum)
  场景描述:需要在被管理节点上安装ipython
  root@mysql02:~# ansible webservers -m raw -a 'apt-get -y install ipython'

  7.1、ipython是否安装成功?验证一下
  没安装之前


  8、运维场景6(在被管理节点中,重启或停止或启动某个服务)
  root@mysql02:~# ansible webservers -m service -a "name=zabbix-agent state=restarted"
  场景描述:我这里需要重启zabbix-agent服务

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-543249-1-1.html 上篇帖子: Ansible安装(ubuntu14.04环境) 下篇帖子: ansible搭建高效运维平台,附批量免密码登陆脚本
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表