CentOS 7 里使用自动化运维工具Ansible

文章目录

[隐藏]

  • 一、简介与优点
  • 二、安装与基本使用

PS:开源的自动化运维部署工具,在以前的项目中应用过Puppet,研发部门也开发过一套自动化部署系统(主要基于java在web界面调用shell脚本部署),使用过程中都有各种不满意。最近尝试一个新一点的Ansible,发现非常好用。配置简单,功能强大。

一、简介与优点

1、ansible是为类Unix系统开发的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、SaltStack、chef等)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。

2、Puppet、SaltStack、Chef这三个都采用C/S模式,每台被控机器都需要安装客户端,对于数量在数百台以上的机器上部署仍然有些麻烦。相比之下,Ansible无需安装服务端和客户端,只要SSH 验证即可。典型的“去中心化”思想。

3、使用简单,快速上手。以前在用Puppet之前,花了时间研究。本来使用Puppet就是想把自己从重复的事情中解放出来,结果为了简化一件事,而深入另一件复杂的事。

4、配置文件易读。Ansible 的主机定义文件使用 INI 格式,支持分组,能够指定模式;此外也能动态生成,这对管理云主机很有用。Playbook是YAML格式,比Puppet的DSL要易读易写很多。

二、安装与基本使用

1、安装:
Ansible默认不在yum的默认库中,需要启用epel库。(建议用阿里云的库,下载速度最快。)

# cd /etc/yum.repos.d/  # wget http://mirrors.aliyun.com/repo/epel-7.repo  # yum install ansible -y  

2、设置用于节点鉴权的SSH密钥:
在Ansible服务端生成密钥,并且复制密钥到各个被控节点中。

# ssh-keygen  # ssh-copy-id -i [email protected]  

3、为Ansible定义节点清单
节点维护清单在配置文件/etc/ansible/hosts 里面。

[16-servers]  10.36.16.12  10.36.16.15  10.36.16.16  10.36.16.17  10.36.16.18  10.36.16.19  10.36.16.20  10.36.16.21  10.36.16.22  

4、基本使用:
检查16-servers节点组的连通性:

ansible 16-servers -m ping  

检查16-servers节点组的内核版本:

ansible 16-servers -m shell -a "uname -a"  

检查16-servers节点组的磁盘使用情况并把结果输出到本地指定文件:

ansible 16-servers -m shell -a "df -Th" > /root/df.txt  

5、常用模块用法:
shell和command的区别:shell模块支持管道符和变量等特殊字符,而command不支持。

command模块(执行远程命令)

ansible 16-servers -m command -a "uname -a"  

shell模块(执行远程主机的shell/python脚本)

ansible 16-servers -m shell -a "/root/xxx.py"  

script模块(在远程主机执行主控端的shell/python脚本)

ansible 16-servers -m script -a "/root/xxx.py"  

raw模块(类似于command模块、支持管道传递)

ansible 16-servers -m raw -a "netstat -na|grep ESTABLISHED|wc -l"  

先说这些了,更详细用法请参考官方文档:

http://docs.ansible.com/

原文出处:ha97 -> http://www.ha97.com/5896.html

本站所发布的一切资源仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如果侵犯你的利益,请发送邮箱到 [email protected],我们会很快的为您处理。