一、安装ansible

ansible安装常用两种方式,`yum 安装` 和 `pip 程序安装`

1、使用yum的方式安装

      ansible使用centos7可以直接使用yum安装(yum install ansible -y)

      但是centos8却不行,经过多次尝试,总结出来的一个问题,是因为库太新了所导致的,在新的epel库里边貌似就没有ansible,我们需要使用版本比较老一点的epel库就能解决这个问题了

①先清除/etc/yum.repos.d下无用的源,有用的可先进行备份
mkdir /etc/yum.repos.d/repo
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/repo

②添加base源、epel扩展源
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo
这里需要注意的是在阿里的epel的源可以发现,是版本比较新的epel源,需要使用
yum install -y https://mirrors.aliyun.com/epel/epel-release-latest-8.noarch.rpm进行拉取,
再使用sed语句对文件内的一些内容进行修改
sed -i 's|^#baseurl=https://download.example/pub|baseurl=https://mirrors.aliyun.com|' /etc/yum.repos.d/epel*
sed -i 's|^metalink|#metalink|' /etc/yum.repos.d/epel*
这样替换后的epel库之中进行拉取ansible会显示没有文件或者其他的报错,这是因为epel新的entos的库之中没有ansible的相关的文件的,我们可以使用老一点的epel文件使用sed语句进行修改,直接使用下边的语句:
sed -i 's|^#baseurl=https://download.example/pub/epel|baseurl=https://mirrors.aliyun.com/epel-archive|' /etc/yum.repos.d/epel*
sed -i 's|^metalink|#metalink|' /etc/yum.repos.d/epel*
修改一下变成epel-archive老存储库,替换使用yum makecache生成缓存,再使用yum install ansible -y安装ansible

假设这个源是从别的机器拷贝过来的会提示缺少EPEL存储库的GPG密钥,使用以下命令即可安装
rpm --import https://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-8

最后、安装好之后使用ansible --version查看一下版本,然后查看一下/etc/ansible,查看有没有这个配置文件目录

应用于centos8的镜像版本在8.5以前,假设你的镜像版本为8.5.2111的版本,你会发现yum的方式安装不了,默认支持python3.11的版本所以需要使用pip的方式进行安装

2、使用pip的方式安装

centos8默认的python版本为3.6.8,所以我们需要先将python版本更新到3.11

1、下载Python 3.11的源代码:

# cd /usr/local/src

# wget https://www.python.org/ftp/python/3.11.0/Python-3.11.0.tgz

这里没装wget的伙伴,可以yum装下
# yum install -y wget

2、解压源代码:

# tar -xzf Python-3.11.0.tgz -C ../

3、进入解压后的目录:

# cd Python-3.11.0

4、安装python所需依赖

# yum install -y gcc patch libffi-devel python-devel  zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel

5、配置安装选项

# ./configure --enable-optimizations

6、编译安装

#make install               //会覆盖python3.6.8版本变成3.11,如果不想覆盖可以使用make altinstall

7、重启

# reboot

8、查看python版本,安装ansible

# python3 --version

# pip3 install ansible

 

pip3安装方式默认没有配置文件和主机清单文件,需要我们自己创建

 

二、管理ansible.cfg配置文件

1. defaults

[defaults]
 
#inventory      = /etc/ansible/hosts                //定义Inventory
#library        = /usr/share/my_modules/        //自定义lib库存放目录
#remote_tmp     = ~/.ansible/tmp                 //临时文件远程主机存放目录
#local_tmp      = ~/.ansible/tmp                    //临时文件本地存放目录
#forks          = 5                                              //默认开启的并发数
#poll_interval  = 15                                         //默认轮询时间间隔
#sudo_user      = root                                     //默认sudo用户
#ask_sudo_pass = True                                   //是否需要sudo密码
#ask_pass      = True                                        //是否需要密码
#host_key_checking = False                            //首次连接是否检查key认证,取消注释
#roles_path    = /etc/ansible/roles                 //默认下载的Roles存放的目录
#log_path = /var/log/ansible.log                   //执行日志存放目录
#module_name = command                          //默认执行的模块
#action_plugins     = /usr/share/ansible/plugins/action               //action插件存放目录
#callback_plugins   = /usr/share/ansible/plugins/callback           //callback插件存放目录
#connection_plugins = /usr/share/ansible/plugins/connection  //connection插件存放目录
#lookup_plugins     = /usr/share/ansible/plugins/lookup           //lookup插件存放目录
#vars_plugins       = /usr/share/ansible/plugins/vars                   //vars插件存放目录
#filter_plugins     = /usr/share/ansible/plugins/filter                   //filter插件存放目录
#test_plugins       = /usr/share/ansible/plugins/test                    //test插件存放目录
#strategy_plugins   = /usr/share/ansible/plugins/strategy          //strategy插件存放目录
#fact_caching = memory                                                              //getfact缓存的主机信息存放方式
#retry_files_enabled = False              

#retry_files_save_path = ~/.ansible-retry                                    //错误重启文件存放目录

2. privilege_escalation

[privilege_escalation]
#become=True                       //是否sudo
#become_method=sudo       //sudo方式
#become_user=root              //sudo后变为root用户
#become_ask_pass=False      //sudo后是否验证密码

3. paramiko_connection

[paramiko_connection]
#record_host_keys=False       //不记录新主机的key以提升效率

#pty=False                              //禁用sudo功能

4. ssh_connection

[ssh_connection]

#pipelining = False                //管道加速功能,需配和requiretty使用方可生效

5. selinux

[selinux]

#libvirt_lxc_noseclabel = yes  //selinux配置

6. colors

[colors]
#highlight = white
#verbose = blue
#warn = bright purple
#error = red
#debug = dark gray
#deprecate = purple
#skip = cyan
#unreachable = red
#ok = green
#changed = yellow
#diff_add = green
#diff_remove = red#diff_lines = cyan

        Ansible的默认全局配置文件是/etc/ansible/ansible.cfg,如果ansible的工作目录里没有ansible.cfg那么默认使用全局的配置文件,使用ansible --version命令可以知道我们当前使用的是哪个配置文件,当系统内有多个配置文件时,优先取离当前位置最近的配置文件,使用ansible all --list-hosts -v查看主机清单