在RHEL 8/CentOS 8上安装和配置ANSIBLE

时间:2020-02-23 14:30:33  来源:igfitidea点击:

我们想在CentOS 8/Rhel 8 Linux上安装Ansible吗?
Ansible是领先的开源配置管理系统。
管理员和运营团队可以轻松地控制中央机器的数千台服务器,而无需安装代理。

与其他配置管理系统相比,ANSIBE是最简单的使用和管理,如Puppet,厨师和盐。
安装,学习和使用很容易。
远程服务器上所需的唯一依赖性是SSH服务和Python。

使用以下步骤安装并在CentOS 8/Rhel 8上安装和配置ANSible。

第1步:在RHEL 8/CentOS 8上安装Python

使用下面的教程安装并在RHEL 8上安装并设置默认Python。

如何在Rhel 8上安装Python 3/Python 2.7

安装后,继续安装Pip,该点是用于安装Ansible的Python包管理器。

如果我们正在使用Python3,请安装 python3-pip软件包。

sudo dnf -y install python3-pip
sudo pip3 install --upgrade pip

对于Python2用户,我们必须安装 python2-pip

sudo dnf -y install python2-pip
sudo pip2 install --upgrade pip

第2步:在Rhel 8/CentOS 8上安装Ansible

我们可以从中安装两种方法,我们可以在CentOS 8/Rhel 8上安装Ansible。

方法1:从epel从CentOS 8/Rhel 8上安装Ansible

将EPEL存储库添加到CentOS 8/RHEL 8系统。

sudo dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

然后启用EPEL Playground存储库并从中于CentOS 8/Rhel 8上安装Ansible。

sudo dnf install  --enablerepo epel-playground  ansible

这将默认使用Python 3,因此已安装一些Python 3软件包。

Dependencies resolved.
===================================================================================================================================================
 Package                            Arch                     Version                                       Repository                         Size
===================================================================================================================================================
Installing:
 ansible                            noarch                   2.8.5-2.epel8.playground                      epel-playground                    15 M
Installing dependencies:
 python3-jmespath                   noarch                   0.9.0-11.el8                                  AppStream                          45 k
 python3-pyasn1                     noarch                   0.3.7-6.el8                                   AppStream                         126 k
 python3-bcrypt                     x86_64                   3.1.6-2.epel8.playground.1                    epel-playground                    44 k
 python3-pynacl                     x86_64                   1.3.0-5.epel8.playground                      epel-playground                   100 k
 sshpass                            x86_64                   1.06-9.epel8.playground                       epel-playground                    27 k
 libsodium                          x86_64                   1.0.18-2.el8                                  epel                              162 k
Installing weak dependencies:
 python3-paramiko                   noarch                   2.4.3-1.epel8.playground                      epel-playground                   289 k
Transaction Summary
===================================================================================================================================================
Install  8 Packages
Total download size: 15 M
Installed size: 81 M
Is this ok [y/N]: y

检查CentOS 8/RHEL 8系统上安装的ANSIBE的版本。

$ansible --version
ansible 2.8.5
  config file = /etc/ansible/ansible.cfg
  configured module search path = ['/home/cloud-user/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python3.6/site-packages/ansible
  executable location = /usr/bin/ansible
  python version = 3.6.8 (default, May  1 2019, 16:43:04) [GCC 8.2.1 20160905 (Red Hat 8.2.1-3)]

方法2:使用pip在CentOS 8/Rhel 8上安装Ansible

安装了PIP后,我们可以使用它来在CentOS 8/Rhel 8机器中安装Ansible。

$pip3 install ansible --user

对于Python2 pip,使用:

$pip2 install ansible --user

我们可以使用以下命令查看Ansible安装:

$ansible --version
 ansible 2.7.5
   config file = None
   configured module search path = ['/home/jmutai/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
   ansible python module location = /home/jmutai/.local/lib/python3.6/site-packages/ansible
   executable location = /home/jmutai/.local/bin/ansible
   python version = 3.6.6 (default, Oct 16 2016, 01:53:53) [GCC 8.2.1 20160905 (Red Hat 8.2.1-3)]

第3步:在CentOS 8/Rhel 8 Linux上测试Ansible

要测试Ansible,我们应该在远程服务器上运行OpenSSH服务。

$sudo systemctl status sshd
 ● sshd.service - OpenSSH server daemon
    Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
    Active: active (running) since Sat 2016-12-29 20:17:11 EAT; 39min ago
      Docs: man:sshd(8)
            man:sshd_config(5)
  Main PID: 820 (sshd)
     Tasks: 1 (limit: 11510)
    Memory: 4.6M
    CGroup: /system.slice/sshd.service
            └─820 /usr/sbin/sshd -D Hyman@theitroad,Hyman@theitroad,aes256-ctr,aes256-cbc,Hyman@theitroad,aes128->
 Dec 29 20:17:11 rhel8.local systemd[1]: Starting OpenSSH server daemon…
 Dec 29 20:17:11 rhel8.local sshd[820]: Server listening on 0.0.0.0 port 22.
 Dec 29 20:17:11 rhel8.local sshd[820]: Server listening on :: port 22.
 Dec 29 20:17:11 rhel8.local systemd[1]: Started OpenSSH server daemon.
 Dec 29 20:19:03 rhel8.local sshd[1499]: Accepted publickey for jmutai from 192.168.122.1 port 35902 ssh2: RSA SHA256:b/8AoYgbThoBYPcFh7CetJuGY/Tl7s4fi>
 Dec 29 20:19:03 rhel8.local sshd[1499]: pam_unix(sshd:session): session opened for user jmutai by (uid=0)

创建Ansible Inventory文件,默认为 /etc/ansible/hosts我喜欢在我的工作目录中创建库存文件。

$vim hosts

复制远程服务器的IP地址以管理和添加到Ansible Inventory文件。

$echo "192.168.122.197" > hosts

我们还可以创建一组如下所示:

[web]
192.168.122.197
[db]
192.168.122.198
[staging]
192.168.122.199
192.168.122.200
192.168.122.201

生成SSH键并将其复制到远程服务器。

$ssh-keygen
$ssh-copy-id  Hyman@theitroad

使用ping模块测试Ansible:

$ansible  -i hosts  192.168.122.197 -m ping  
 192.168.122.197 | SUCCESS => {
     "changed": false,
     "ping": "pong"
 }

-i选项用于提供库存文件的路径。
我们应该为主机组名称获取相同的输出。

$ansible  -i hosts  web -m ping  
 192.168.122.197 | SUCCESS => {
     "changed": false,
     "ping": "pong"
 }

对于需要sudo的命令,通过该选项 --ask-become-pass
这将要求特权升级密码。
这可能需要安装 sshpass程序。

$ansible  -i hosts  web -m command -a "sudo yum install vim"  --ask-become-pass
....
192.168.122.197 | CHANGED | rc=0 >>
 Updating Subscription Management repositories.
 Updating Subscription Management repositories.
 Last metadata expiration check: 0:52:23 ago on Sat 29 Dec 2016 08:28:46 PM EAT.
 Package vim-enhanced-2:8.0.1763-7.el8.x86_64 is already installed.
 Dependencies resolved.
 Nothing to do.
 Complete!

我们现在在RHEL 8/CentOS 8服务器或者工作站上安装了ANSTIBLE。
我们可以了解更多使用ASSIBE来管理服务器从官方ANSSIBLY文档管理。