Ansible的安装
目录
Ansible安装
Ansible 易于安装,且只需要在控制节点安装,受控节点不需要安装
控制节点需要是 Linux 或 UNIX 系统,不支持 Windows 作为控制节点,但是支持其作为受控节点
控制节点需要安装 Python2.7 或 Python3.5 以上版本
控制节点安装
pip安装
pip是Python的包管理工具,使用起来非常方便,只要操作系统安装有pip,直接pip install包名即可。安装Ansible的方法如下:
pip3 install ansible
或:(用国内源)
pip3 install ansible -i https://pypi.tuna.tsinghua.edu.cn/simple
如果安装时报错:"pip:No module named setuptools_rust"
执行命令: pip3 install -U pip
如果Python3.7.0以上版本安装时报错ModuleNotFoundError: No module named '_ctypes',
原因在这里:https://www.jianshu.com/p/69681655309b
可以 执行命令:yum install libffi-devel -y
然后将Python重新编译一遍即可。
cd ~ yum install -y gcc cd Python-3.7.5 ./configure --prefix=/usr/local/Python3
如果编译安装过程有报错提示,可参考文档:http://www.cnblogs.com/shwee/p/9013851.html
然后:make
make
接着:make install
make install
或者两步一起:make && make install
[root@maxin Python-3.7.5]# python3 -V
Python 3.7.5
python重新编译以后,再去安装ansible应该就可以了
pip3 install ansible
或:
pip3 install ansible -i https://pypi.tuna.tsinghua.edu.cn/simple
版本验证:
[root@localhost ~]# ansible --version
ansible 2.10.5 config file = None configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules'] ansible python module location = /usr/local/Python3/lib/python3.7/site-packages/ansible executable location = /usr/local/Python3/bin/ansible python version = 3.7.5 (default, Feb 12 2021, 16:30:52) [GCC 4.8.5 20150623 (Red Hat 4.8.5-39)]
安装pip
如果没pip,需先安装pip.
yum可直接安装:
yum install Python-pip
pip install ansible
yum安装
在基于RHEL/CentOS Linux的系统中使用yum安装Ansible。
sudo yum install ansible
源代码安装
可以从Github上安装最新版本。
受控主机安装
受控Linux主机
Linux 和 UNIX 受控节点需安装 Python2.6 或 3.5 及以上版本,对于RHEL,安装 python 软件包即可
开启SElinux的情况
如果受控节点开启 SELinux,需安装 libselinux-python 软件包
yum module install python36
关闭SElinux的情况
[root@localhost Python-3.7.5]# sed -i 's/SELINUX=.*/SELINUX=permissive/g' /etc/selinux/config
[root@localhost Python-3.7.5]# setenforce 0
[root@localhost Python-3.7.5]# getenforce
Permissive
受控Windows主机
Ansible 包含大量管理 Windows 的模块,模块清单可参考:
https://docs.ansible.com/ansible/2.7/modules/list_of_windows_modules.html
大部分模块需要 Windows 受控节点安装 PowerShell 3.0 以上版本,同时需要 .NET Framework 4.0 以上版本
https://blog.51cto.com/7424593/2174156
受控网络设备
Ansible 含有大量模块用以配置网络设备(路由器交换机等)
模块包括:Cisco IOS, IOS XR, and NX-OS; Juniper Junos; Arista EOS; and VyOS-based 等
因为大部分网络设备无法运行 Python,模块将在控制节点运行
控制节点和受控网络设备通过:CLI over SSH, XML over SSH, 或 API over HTTP(S) 方式通信
https://vqiu.cn/pi-liang-pei-zhi-hua-wei-cejiao-huan-ji/
https://vqiu.cn/pi-liang-pei-zhi-hua-wei-cejiao-huan-ji/
Ansible卸载
背景
最近到一个项目组,用了一套高大上的运维工具来搭建开发环境. 有vagrant控制VirtualBox启动虚拟机.有ansible来运行playbook初始化环境.
然后遇到了一个坑,项目现有的playbook可以在ansible 1.9.6里面正常运行,而在ansible 2.0.2里执行失败了.而我在机器直接运行 pip install ansible 给我安装了最新版本,成功的跌到这个坑里了.
解决方式
解决起来也很简单.只要执行命令pip时指定具体版本就好.
- 先用命令pip freeze查看已经安装的package及版本.
- 如果安装了ansible,就执行命令pip uninstall ansible卸载之.
- 最后运行命令 pip install ansible==1.9.6安装我们要的版本.