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

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

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-11-2 09:02:13 | 显示全部楼层 |阅读模式
一、环境描述
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、在管理节点上拷贝


说明:id_rsa.pub文件为公钥文件,id_rsa为私钥文件

1.2.2、在被管理节点上操作(粘贴管理节点的SSH公钥)
root@testweb01:~/.ssh# vim authorized_keys      #如果没有authorized_keys文件,创建即可

说明:其他的被管理节点依次拷贝即可

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-294546-1-1.html 上篇帖子: Ansible 使用roles安装服务 下篇帖子: Ansible安装(ubuntu14.04环境) 个人总结
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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