????ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、SaltStack、chef、func)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。 ????本期为大家展示安装ansible和一些基本的配置和命令使用,后期会讲述具体一些模块和其他内容。
关闭selinux和防火墙
# 关闭selinux修改/etc/sysconfig/selinux文件中的SELINUX=disablesed -ri 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config#关闭防火墙systemctl stop firewalld.servicesystemctl disable firewalld.service
# 关闭selinux
修改/etc/sysconfig/selinux文件中的SELINUX=disable
sed -ri 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
#关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
# 安装依赖epel-releaseyum -y install epel-release#安装ansibleyum -y install ansible
# 安装依赖epel-release
yum -y install epel-release
#安装ansible
yum -y install ansible
# 可以自己选择版本wget https://releases.ansible.com/ansible/ansible-2.9.3.tar.gz# 解压安装tar xvf ansible-2.9.3.tar.gzmv ansible-2.9.3.tar.gz /opt/ansiblecd /opt/ansible# 安装依赖,pip3为python的安装,先确认是否安装python3pip3 install -r requirements.txt -i https://pypi.yuna.tsinghua.edu.cn/simple/# 创建软连接ln -s /usr/bin/pip3 /usr/bin/pip# 安装ansiblepip install --user ansible -i https://pypi.yuna.tsinghua.edu.cn/simple/# 创建python软连接ln -s /usr/bin/python3 /usr/bin/python# 创建ansible软连接ln -s /opt/ansible/bin/* /usr/bin# 将配置文件复制到ansible 工作路径下cp /opt/ansible/examples/ansible.cfg /etc/ansiblecp /opt/ansible/examples/hosts /etc/ansible
# 可以自己选择版本
wget https://releases.ansible.com/ansible/ansible-2.9.3.tar.gz
# 解压安装
tar xvf ansible-2.9.3.tar.gz
mv ansible-2.9.3.tar.gz /opt/ansible
cd /opt/ansible
# 安装依赖,pip3为python的安装,先确认是否安装python3
pip3 install -r requirements.txt -i https://pypi.yuna.tsinghua.edu.cn/simple/
# 创建软连接
ln -s /usr/bin/pip3 /usr/bin/pip
# 安装ansible
pip install --user ansible -i https://pypi.yuna.tsinghua.edu.cn/simple/
# 创建python软连接
ln -s /usr/bin/python3 /usr/bin/python
# 创建ansible软连接
ln -s /opt/ansible/bin/* /usr/bin
# 将配置文件复制到ansible 工作路径下
cp /opt/ansible/examples/ansible.cfg /etc/ansible
cp /opt/ansible/examples/hosts /etc/ansible
inventory :管理的主机清单文件路径library:ansible的模块存放的目录remote_tmp:上述工作原理中提到的将脚本发送至对端的临时目录local_tmp:上述工作原理中提到本地生成脚本存放的临时目录forks:并发连接数,默认为5sudo_user :命令执行用户remote_port :访问管理主机的端口 host_key_checking:设置是否检查SSH主机的密钥,默认为falsetimeout :ssh连接被管理主机的超时时间log_path:ansilbe日志文件路径
inventory :管理的主机清单文件路径
library:ansible的模块存放的目录
remote_tmp:上述工作原理中提到的将脚本发送至对端的临时目录
local_tmp:上述工作原理中提到本地生成脚本存放的临时目录
forks:并发连接数,默认为5
sudo_user :命令执行用户
remote_port :访问管理主机的端口
host_key_checking:设置是否检查SSH主机的密钥,默认为false
timeout :ssh连接被管理主机的超时时间
log_path:ansilbe日志文件路径
# 这个清单就是我们的主机清单,里面保存的是一些 ansible 需要连接管理的主机列表1、直接指明主机地址或者主机名## green.example.com## blue.example.com192.168.0.200192.168.0.201node02# 主机地址范围192.168.0.[200:202]2、定义一个主机组[组名]把地址或主机名加进去例如mysql组[mysqlserver]192.168.0.201web组[webserver]192.168.0.201192.168.0.202# 根据自己需求修改配置
# 这个清单就是我们的主机清单,里面保存的是一些 ansible 需要连接管理的主机列表
1、直接指明主机地址或者主机名
## green.example.com
## blue.example.com
192.168.0.200
192.168.0.201
node02
# 主机地址范围
192.168.0.[200:202]
2、定义一个主机组[组名]把地址或主机名加进去
例如mysql组
[mysqlserver]
web组
[webserver]
192.168.0.202
# 根据自己需求修改配置
# 查看ansible版本ansible --version
# 查看ansible版本
ansible --version
# 常用于获取模块信息及其使用帮助ansible-doc -l | grep mysql# 例如查找出mysql相关的模块信息
# 常用于获取模块信息及其使用帮助
ansible-doc -l | grep mysql
# 例如查找出mysql相关的模块信息
# ansible命令格式如下ansible <host-pattern> [-f forks] [-m module_name] [-a args]
# ansible命令格式如下
ansible <host-pattern> [-f forks] [-m module_name] [-a args]
6、配置服务器间的ssh免密登录
# 在主控机上生成密钥ssh-keygen # 接下来一路回车即可# 将密钥传给客户端ssh-copy-id root@192.168.0.201ssh-copy-id root@192.168.0.202# 期间会输一次客户端的登录密码即可
# 在主控机上生成密钥
ssh-keygen # 接下来一路回车即可
# 将密钥传给客户端
ssh-copy-id root@192.168.0.201
ssh-copy-id root@192.168.0.202
# 期间会输一次客户端的登录密码即可
/ / /
7、使用ansible的ping模块进行验证
# 测试两台客户机网络是否连通ansible 192.168.0.201 -m ping
# 测试两台客户机网络是否连通
ansible 192.168.0.201 -m ping
# 使用分组的host主机来验证ansible webserver -m ping
# 使用分组的host主机来验证
ansible webserver -m ping
原文链接:https://www.cnblogs.com/Merbleue/p/17241418.html
本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728