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 ~]# 
相关推荐
AOwhisky14 小时前
Redis 学习笔记(第三期):持久化与主从复制
运维·数据库·redis·笔记·学习·云计算
c2385614 小时前
Linux C++ 进度条进阶美化与工程化封装
linux·运维·服务器
李小白6614 小时前
第四天-WEB服务器基本原理,IIS服务
运维·服务器·前端
2401_8346369915 小时前
Nginx 从入门到实战:静态 / 动态站点、PHP 部署与反向代理全解析
运维·nginx·php
aosky16 小时前
一台电脑配置多个 SSH Key 对应不同的 GitHub 账号
运维·ssh·github
云登指纹浏览器17 小时前
WebDriver反检测技术详解:如何让自动化脚本看起来像真实浏览器
运维·自动化·跨境电商
xmtxz17 小时前
计算机网络基础课程学习心得:从理论抽象到硬核实战的进阶之路
运维·学习
RisunJan17 小时前
Linux命令-pgrep (通过进程名查找进程 ID)
linux·运维
信创工程师-小杨18 小时前
Linux内网环境如何解决依赖的问题
linux·运维·服务器
java知路19 小时前
linux yum 下载docker安装包及依赖安装包,并离线安装
linux·运维·docker