资讯

展开

CentOS 7部署自动化运维工具Ansible

作者:快盘下载 人气:

最近尝试一个新一点的开源的自动化运维部署工具,Ansible,发现非常好用。配置简单,功能强大。

CentOS 7部署自动化运维工具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 root@10.36.16.20

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/

加载全部内容

相关教程
猜你喜欢
用户评论
快盘暂不提供评论功能!