Ansible的安装

来自CloudWiki
跳转至: 导航搜索


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安装我们要的版本.

参考文档:https://www.cnblogs.com/qyf404/p/5473463.html