RHEL8_Linux下载ansible

本章内容主要介绍RHEL8中如何安装ansible

  • ansible时如何工作的
  • 在RHEL8中安装ansible

1.ansible工作原理

如果管理的服务器很多,如几十台甚至几百台,那么就需要一个自动化管理工具了,ansible就是这样的一种自动化管理工具。

1)ansible是通过ssh连接到被管理主机,然后执行相关操作的,如图


ansible主机通过ssh连接到被管理主机时,需要提前设置密钥登录,使得从ansible主机
可以无密码登录到被管理主机。

2.安装ansible

在nonde01上安装ansible步骤如下:

1)先安装系统的开发工具
[root@node01 ~]# yum -y groupinstall 开发工具
2) 挂载镜像
[root@node01 ~]# mount /dev/cdrom /mnt/
mount: /mnt: /dev/sr0 already mounted on /var/ftp/dvd.
[root@node01 ~]# 
3)配置本地yum源
[root@node01 ~]# cat /etc/yum.repos.d/aa.repo 
[aa]
name=aa
baseurl=file:///mnt/AppStream
enabled=1
gpgcheck=0

[bb]
name=bb
baseurl=///mnt/BaseOS
enabled=1
gpgcheck=0
[root@node01 ~]# 
4)先使用root用户登录server,在其上配置epel源,命令如下
[root@node01 ~]# yum -y install https://mirrors.aliyun.com/epel/epel-release-latest-8.noarch.rpm
[root@node01 ~]#  sed -i 's|^#baseurl=https://download.fedoraproject.org/pub|baseurl=https://mirrors.aliyun.com|' /etc/yum.repos.d/epel*
[root@node01 ~]#  sed -i 's|^metalink|#metalink|' /etc/yum.repos.d/epel*

RHEL8默认的Python版本为3.6,不符合项目的需求。现在升级到3.12.1

5)下载Python3.12.1
[root@node01 ~]# wget https://www.python.org/ftp/python/3.12.1/Python-3.12.1.tgz
[root@node01 ~]# tar -zxvf Python-3.12.1.tgz 
6)安装必须的包
[root@node01 ~]# dnf -y install gcc zlib* libffi-devel
7)安装Python
[root@node01 Python-3.12.1]# cd Python-3.12.1/
[root@node01 Python-3.12.1]# ./configure --prefix=/usr/local/python3 --enable-optimizations
[root@node01 Python-3.12.1]# make
[root@node01 Python-3.12.1]# make install
8)删除远程的Python3和pip3
[root@node01 Python-3.12.1]# rm -rf /usr/bin/python3
[root@node01 Python-3.12.1]# ln -s /usr/local/python3/bin/python3 /usr/bin/python3
[root@node01 Python-3.12.1]# rm -rf /usr/bin/pip3
[root@node01 Python-3.12.1]# ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
9)查看Python3和Pip3是否正确的被安装
[root@node01 ~]# python3 --version
Python 3.12.1
[root@node01 ~]# pip3 --version
pip 23.2.1 from /usr/local/python3/lib/python3.12/site-packages/pip (python 3.12)
[root@node01 ~]# 

3.正式安装ansible

[root@node01 ~]# rpm -ivh ansible-2.9.11-1.el8ae.noarch.rpm 
错误:依赖检测失败:
	python3-cryptography 被 ansible-2.9.11-1.el8ae.noarch 需要
	python3-jinja2 被 ansible-2.9.11-1.el8ae.noarch 需要
	sshpass 被 ansible-2.9.11-1.el8ae.noarch 需要
[root@node01 ~]# 

错误:依赖检测失败:

python3-cryptography 被 ansible-2.9.11-1.el8ae.noarch 需要

python3-jinja2 被 ansible-2.9.11-1.el8ae.noarch 需要

sshpass 被 ansible-2.9.11-1.el8ae.noarch 需要
需要解决依赖包问题前面两个使用本地yum源就可以解决了

1)安装依赖
[root@node01 ~]# yum -y install python3-cryptography
[root@node01 ~]# yum -y install python3-jinja2
[root@node01 ~]# rpm -ivh sshpass-1.06-3.el8ae.x86_64.rpm 
2)再次安装ansible
[root@node01 ~]# rpm -ivh ansible-2.9.11-1.el8ae.noarch.rpm 
Verifying...                          ################################# [100%]
准备中...                          ################################# [100%]
正在升级/安装...
   1:ansible-2.9.11-1.el8ae           ################################# [100%]
[root@node01 ~]# 
3)使用命令检查ansible的安装结果
[root@node01 ~]# ansible --version
ansible 2.9.11
  config file = /etc/ansible/ansible.cfg
  configured module search path = ['/root/.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, Sep  9 2021, 07:49:02) [GCC 8.5.0 20210514 (Red Hat 8.5.0-3)]
[root@node01 ~]# pip3 --version
pip 23.2.1 from /usr/local/python3/lib/python3.12/site-packages/pip (python 3.12)
[root@node01 ~]# 

这里安装的ansible的版本是2.9.27,同时也显示ansible的默认配置是letc/ansible/ansible.cfgo还要确保ansible主机能够解析所有的被管理机器,这里通过配置/etc/hosts 来实现,l/etchosts的内容如下。

[root@node01 ~]# cat /etc/hosts | grep node
192.168.182.220  node02
192.168.182.210  node03
[root@node01 ~]# 

在node02和 node03两台机器上确认已经创建好了blab 用户,如果没有请自行创建,然
后配置好sudo,命令如下。

[root@node02 ~]# cat /etc/sudoers.d/blab 
blab ALL=(root) NOPASSWD: ALL
[root@node02 ~]# 

[root@node01 ~]# cat /etc/sudoers.d/blab 
blab ALL=(root) NOPASSWD: ALL
[root@node01 ~]# 

这样在这两台机器上,blab 用户通过sudo-i可以无密码切换到root用户。
使用blab 用户登录server,配置好ssh密钥登录,使得blab 用户可以无密码登录到
server2和 server3,命令如下

[root@node02 ~]# ssh 192.168.182.200
Activate the web console with: systemctl enable --now cockpit.socket

This system is not registered to Red Hat Insights. See https://cloud.redhat.com/
To register this system, run: insights-client --register

Last login: Thu Dec 14 08:23:08 2023 from 192.168.182.1
[root@node01 ~]# exit
注销
Connection to 192.168.182.200 closed.
[root@node02 ~]# 
相关推荐
纷飞梦雪1 小时前
使用chroot预安装软件到ubuntu22中
linux·运维·ubuntu
jiarg6 小时前
linux 内网下载 yum 依赖问题
linux·运维·服务器
yi个名字6 小时前
Linux第一课
linux·运维·服务器
菜鸟xy..7 小时前
linux 基本命令教程,巡查脚本,kali镜像
linux·运维·服务器·kali镜像·巡查脚本·nmtui
暴躁的小胡!!!7 小时前
Linux权限维持之协议后门(七)
linux·运维·服务器·网络·安全
安 当 加 密7 小时前
中小企业Radius认证服务器的低成本高安全解决方案
运维·服务器·安全
ChinaRainbowSea8 小时前
Linux: Centos7 Cannot find a valid baseurl for repo: base/7/x86_64 解决方案
java·linux·运维·服务器·docker·架构
snpgroupcn9 小时前
ECC升级到S/4 HANA的功能差异 物料、采购、库存管理对比指南
运维·安全·数据库架构
晨曦启明71110 小时前
Linux云计算SRE-第十八周
linux·运维·云计算
暴躁的小胡!!!10 小时前
Linux权限维持之vim python 扩展后门(五)
linux·运维·服务器·网络·安全