介绍
Ansible是一种批量部署工具,基用python开发的。ansible其实准确的说只提供了一个框架,它要基于很多其他的python模块才能工作的,所以在安装ansible的时候你要再装很多其他的依赖包的。
好处之一是使用者可以开发自己的模块,放在里面使用。第二个好处是无需在客户端安装agent,更新时,只需在操作机上进行一次更新即可。第三个好处是批量任务执行可以写成脚本,而且不用分发到远程就可以执行。
1. 升级python
注意:强烈建议升级python版本到2.6以上,不然运行会出错或者有些功能会没有,在编译安装其他包的时候也会因为兼容问题报错
2. 安装python相关开发包
安装python开发包:python-dev(有的操作系统下为python-devel)
yum install python-devel
3. 安装python模块
1. setuptools模块安装
下载地址:https://pypi.org/project/setuptools/
python setup.py install
安装setuptools报错:
ModuleNotFoundError: No module named ‘_ctypes’
原因及解决办法
2. pycrypto模块安装
下载地址:https://pypi.org/project/pycrypto/
模块:pycrypto
python setup.py install
3. PyYAML模块安装
下载地址:https://pyyaml.org/download/libyaml/
模块:yaml
./configure --prefix=/usr/local
make
make install
下载地址:https://pyyaml.org/
模块:PyYAML
python setup.py install
4. Jinja2模块安装
下载地址:https://pypi.org/project/MarkupSafe/
模块:MarkupSafe
python setup.py install
下载地址:https://pypi.org/project/Jinja2/
模块:Jinja2
python setup.py install
5. paramiko模块安装
下载地址:https://pypi.org/project/ecdsa/
模块1:ecdsa
python setup.py install
安装报错:
error: Could not find suitable distribution for Requirement.parse(‘six>=1.9.0’)
解决办法,安装six新版本
下载地址:https://pypi.org/project/six/
python setup.py install
下载地址:https://pypi.org/project/paramiko/
模块2:paramiko
python setup.py install
安装报错1/2/3:
error: Could not find suitable distribution for Requirement.parse(‘pynacl>=1.0.1’)
error: Could not find suitable distribution for Requirement.parse(‘cryptography>=2.5’)
error: Could not find suitable distribution for Requirement.parse(‘bcrypt>=3.1.3’)
解决办法1:安装PyNaCl新版本
下载地址:https://pypi.org/project/PyNaCl
下载地址:https://pypi.org/project/cffi/
下载地址:https://pypi.org/project/pycparser/
python setup.py install
解决办法2:安装cryptography新版本
下载地址:https://pypi.org/project/cryptography/
python setup.py install
解决办法3:https://pypi.org/project/bcrypt/
python setup.py install
6. simplejson模块安装
下载地址:https://pypi.org/project/simplejson/
模块:simplejson
python setup.py install
4. ansible安装
https://pypi.org/project/ansible/
python setup.py build
python setup.py install
拷贝,生成ansible配置文件
mkdir /etc/ansible
cd examples
cp ansible.cfg hosts /etc/ansible
查看ansible版本:
ansible --version
注:安装完之后,没有ansible这个命令,通过find / -name ansible
发现ansible在/usr/local/python3/bin/ansible,执行命令即可:
ln -s /usr/local/python3/bin/ansible /usr/local/sbin/ansible
5. SSH免密钥登录设置
1. 一键生成非交互式秘钥对
ssh-keygen -t rsa -f /root/.ssh/id_rsa -P ""
2. 然后把公钥(id_rsa.pub)拷贝到客户端上:
ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.0.65
注:测试时提示ssh-copy-id命令不可用,可直接在客户端机器上创建
/host/.ssh/authorized_keys文件,将公钥内容贴入
3. 本机也要拷贝:
cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
chmod 600 /root/.ssh/authorized_keys # 必须是600, 否则用ansible连接本机报错
4. 测试免密登录
ssh root@10.10.10.1
ssh root@10.10.10.2
6. 测试ansible
cat > /etc/ansible/hosts
[test]
10.10.10.1
10.10.10.2
测试远程主机的运行状态:
ansible test -m ping
#列出所有ansible支持的模块,重要,请自行记住
ansible-doc -l
注:安装完之后,没有ansible-doc这个命令,通过find / -name ansible
发现ansible-doc在/usr/local/python3/bin/ansible-doc,执行命令即可:
ln -s /usr/local/python3/bin/ansible-doc /usr/local/sbin/ansible-doc