#打卡不停更#Ansible安装 原创

Feyncode
发布于 2022-10-29 15:39
浏览
0收藏

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的一些 基本用法。

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
已于2022-10-31 16:59:00修改
收藏
回复
举报
回复
    相关推荐