#打卡不停更#Ansible安装 原创
Ansible安装
这一节主要介绍ansible如何在centos主机上安装,ansible可以很简单的从源码运行,而且不必再远程服务器上安装软件 ,所以很多的ansible用户都会跟进使用开发版本。
直至本篇博文发表,ansible的最新版本来到了6.0,ansible一般每两个月都会出一个发行版本,如果有bug,一般会在下一个发行版本中修复。
如果你使用的是常见的操作系统,Fedora,Debian,Ubuntu,Centos,Red hat。完全可以通过系统的软件包管理器来获得ansible的最新版本。
当然另一种选择是通过pip工具安装,本文会在centos7.9的系统中演示两种办法来安装ansible。
主机环境
centos7.9系统,具体信息看下表
操作系统 | 主机名 | ip地址 |
---|---|---|
centos7.9/2u4G/ | ansible | 192.168.10.10 |
使用yum安装ansible
1配置epel网络yum源
ansible的软件包在epel仓库中,所以我们需要首先配置epel源
mv /etc/yum.repos.d/* /media
curl -o /etc/yum.repos.d/epel-7.repo https://mirrors.aliyun.com/repo/epel-7.repo
#由于是国内环境,所以使用的是阿里源
2.查看ansible软件包信息
yum list |grep ansible
#运行后应该能看到以下信息
3.安装ansible
运行命令安装ansible
yum install ansible -y
#稍等一会即可
命令运行完成,查看ansible版本
ansible --version
#不出意外的话应该有以下返回
ansible 2.9.27
config file = /etc/ansible/ansible.cfg
configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python2.7/site-packages/ansible
executable location = /usr/bin/ansible
python version = 2.7.5 (default, Oct 14 2020, 14:45:30) [GCC 4.8.5 20150623 (Red Hat 4.8.5-44)]
4.查看ansible各个配置文件目录
实际上刚刚的version已经把这些信息都打印出来了,这个我觉得是比较好的,不像一些服务,配置文件都不知道放在那里,换了系统还得重新熟悉。
whereis ansible
ansible: /usr/bin/ansible /etc/ansible /usr/share/ansible /usr/share/man/man1/ansible.1.gz
可以看到ansible是可以用man命令查看说明的,主配置目录在/etc/ansible下。
编译安装ansible
1.首先我们卸载掉刚刚安装的ansible
yum remove -y ansible
#不出意外的话会有以下返回
Removed:
ansible.noarch 0:2.9.27-1.el7
Complete!
2.下载最新版ansible
如果你是在一个没有网络的主机上安装,那么需要在有网络的电脑上下载好传到主机上就可以了
如果有网络的话,直接使用以下命令即可。
wget https://releases.ansible.com/ansible/ansible-2.9.27.tar.gz
#如果提示没有wget命令的话,使用curl命令替代,如下所示
curl -O https://releases.ansible.com/ansible/ansible-2.9.27.tar.gz
#我帮大家试了一下,国内下载速度很可以。
现在你应该能在主机上找到刚刚下载的ansible软件包。
#
[root@ansible ~]# ll
total 14500
-rw-r--r--. 1 root root 14844836 Oct 29 02:47 ansible-2.9.27.tar.gz
3.安装依赖
接下来需要安装一些依赖,这是ansible正常运行所必须的。应该有以下这些
PyYAML.x86_64 0:3.10-11.el7
libyaml.x86_64 0:0.1.4-11.el7_0
python-babel.noarch 0:0.9.6-8.el7
python-backports.x86_64 0:1.0-8.el7
python-backports-ssl_match_hostname.noarch 0:3.5.0.1-1.el7
python-cffi.x86_64 0:1.6.0-5.el7
python-enum34.noarch 0:1.0.4-1.el7
python-idna.noarch 0:2.4-1.el7
python-ipaddress.noarch 0:1.0.16-2.el7
python-jinja2.noarch 0:2.7.2-4.el7
python-markupsafe.x86_64 0:0.11-10.el7
python-paramiko.noarch 0:2.1.1-9.el7
python-ply.noarch 0:3.4-11.el7
python-pycparser.noarch 0:2.14-1.el7
python-setuptools.noarch 0:0.9.8-7.el7
python-six.noarch 0:1.9.0-2.el7
python2-cryptography.x86_64 0:1.7.2-2.el7
python2-httplib2.noarch 0:0.18.1-3.el7
python2-jmespath.noarch 0:0.9.4-2.el7
python2-pyasn1.noarch 0:0.1.9-7.el7
sshpass.x86_64 0:1.06-1.el7
这些依赖使用安装镜像源就可以安装,直接使用yum安装即可。
yum install python-jinja2 PyYAML python-paramiko python-babel python-cryptography
4.解压压缩包
tar zxvf ansible-2.9.27.tar.gz
解压完成后应该能看到以下目录,并且目录内文件应该一致。
[root@ansible ~]# ll
total 14504
drwxr-xr-x. 14 root root 4096 Oct 29 02:54 ansible-2.9.27
-rw-r--r--. 1 root root 14844836 Oct 29 02:47 ansible-2.9.27.tar.gz
[root@ansible ~]# cd ansible-2.9.27
[root@ansible ansible-2.9.27]# ls
bin contrib docs lib MANIFEST.in README.rst SYMLINK_CACHE.json
build COPYING examples licenses packaging requirements.txt test
changelogs dist hacking Makefile PKG-INFO setup.py
5.执行安装
执行目录为解压的ansible文件夹内。
[root@ansible ansible-2.9.27]# pwd
/root/ansible-2.9.27
使用python执行安装
python setup.py build && python setup.py install
拷贝配置文件到/etc/ansible目录下
mkdir /etc/ansible/
cp -r examples/* /etc/ansible/
接下来大功告成,查看ansible版本信息
[root@ansible ansible-2.9.27]# ansible --version
ansible 2.9.27
config file = /etc/ansible/ansible.cfg
configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python2.7/site-packages/ansible-2.9.27-py2.7.egg/ansible
executable location = /usr/bin/ansible
python version = 2.7.5 (default, Oct 14 2020, 14:45:30) [GCC 4.8.5 20150623 (Red Hat 4.8.5-44)]
使用pip安装Ansible
Ansible可以使用python包管理器pip安装,在centos系统上默认没有安装pip。这个软件包可以通过安装镜像获得。
1.安装pip
yum install python3-pip -y
2.升级pip
python3 -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --upgrade pip
#由于pypi在国内访问一直不是很稳定,所以我是用了清华源替代,速度非常好。
#不出意外的话,你应该能看到以下输出
[root@localhost ~]# python3 -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --upgrade pip
WARNING: Running pip install with root privileges is generally not a good idea. Try `__main__.py install --user` instead.
Collecting pip
Downloading https://pypi.tuna.tsinghua.edu.cn/packages/a4/6d/6463d49a933f547439d6b5b98b46af8742cc03ae83543e4d7688c2420f8b/pip-21.3.1-py3-none-any.whl (1.7MB)
100% |████████████████████████████████| 1.7MB 287kB/s
Installing collected packages: pip
Successfully installed pip-21.3.1
3.安装Ansible
pip3 install ansible
如果你下载ansible模块比较慢的话,可以使用以下命令来将pip下载地址更改为清华源。
pip3 config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
命令完成后查看ansible版本
[root@localhost ~]# ansible --version
[DEPRECATION WARNING]: Ansible will require Python 3.8 or newer on the controller starting with Ansible
2.12. Current version: 3.6.8 (default, Oct 13 2020, 16:18:22) [GCC 4.8.5 20150623 (Red Hat 4.8.5-44)]. This
feature will be removed from ansible-core in version 2.12. Deprecation warnings can be disabled by setting
deprecation_warnings=False in ansible.cfg.
/usr/local/lib/python3.6/site-packages/ansible/parsing/vault/__init__.py:44: CryptographyDeprecationWarning: Python 3.6 is no longer supported by the Python core team. Therefore, support for it is deprecated in cryptography and will be removed in a future release.
from cryptography.exceptions import InvalidSignature
ansible [core 2.11.12]
config file = None
configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /usr/local/lib/python3.6/site-packages/ansible
ansible collection location = /root/.ansible/collections:/usr/share/ansible/collections
executable location = /usr/local/bin/ansible
python version = 3.6.8 (default, Oct 13 2020, 16:18:22) [GCC 4.8.5 20150623 (Red Hat 4.8.5-44)]
jinja version = 3.0.3
libyaml = True
需要注意的是,使用pip安装的ansible没有etc目录下的配置文件,也就是没有/etc/ansible/ansible.cfg。
这个安装方式需要手动创建这个文件,ansible会自动搜索,无需操作。当然最好的方式是将官网上的默认文件上传到服务器。
我选择直接创建,因为官网打不开。
mkdir /etc/ansible/ & touch /etc/ansible/ansible.cfg
现在来查看ansible的版本信息
[root@localhost ~]# ansible --version
[DEPRECATION WARNING]: Ansible will require Python 3.8 or newer on the controller starting with Ansible
2.12. Current version: 3.6.8 (default, Oct 13 2020, 16:18:22) [GCC 4.8.5 20150623 (Red Hat 4.8.5-44)]. This
feature will be removed from ansible-core in version 2.12. Deprecation warnings can be disabled by setting
deprecation_warnings=False in ansible.cfg.
/usr/local/lib/python3.6/site-packages/ansible/parsing/vault/__init__.py:44: CryptographyDeprecationWarning: Python 3.6 is no longer supported by the Python core team. Therefore, support for it is deprecated in cryptography and will be removed in a future release.
from cryptography.exceptions import InvalidSignature
ansible [core 2.11.12]
config file = /etc/ansible/ansible.cfg
configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /usr/local/lib/python3.6/site-packages/ansible
ansible collection location = /root/.ansible/collections:/usr/share/ansible/collections
executable location = /usr/local/bin/ansible
python version = 3.6.8 (default, Oct 13 2020, 16:18:22) [GCC 4.8.5 20150623 (Red Hat 4.8.5-44)]
jinja version = 3.0.3
libyaml = True
可以看到输出已经正常,创建出来的配置文件是空的,ansible会自动适配默认选项,当然对于新手不太适合这个操作,建议还是使用软件包管理器安装比较好。
那么安装这一节就到这里了,下面我们会介绍ansible的一些 基本用法。