Ansible环境搭建,CentOS 系列操作系统搭建Ansible集群环境

Ansible是一种自动化工具,基于Python写的,原理什么的就不过多再说了,详情参考:https://www.itwk.cc/post/403.html
https://blog.csdn.net/qq_34185638/article/details/131079320?spm=1001.2014.3001.5502

环境准备

HOSTNAME IP OS
master.example.com 10.5.5.132 CentOS Stream 8 Mini Install
node1.example.com 10.5.5.133 CentOS Stream 8 Mini Install
node2.example.com 10.5.5.134 CentOS Stream 8 Mini Install

此次实验将会用到三台主机,一台作为控制节点,两台作为被管理节点(受控主机)

配置主机名

关闭SELINUX

bash 复制代码
setenforce 0 && sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config

配置本地域名解析(管理节点执行)

/etc/hosts文件中添加被管理节点的 ip+fqdn,直接用IP也可以,但是不易于管理,使用fqdn可以使用这些名称来标识和操作主机,而不必依赖于IP地址。

bash 复制代码
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
10.5.5.133  node1 node1.example.com
10.5.5.134  node2 node2.example.com

配置免密登录

配置免密登录,实现控制节点无需输入密码的情况下通过SSH协议连接到被管理节点。

生成RSA密钥对

bash 复制代码
ssh-keygen -t rsa

将公钥复制到远程服务器

bash 复制代码
ssh-copy-id [username]@server

验证

安装Ansible

在控制节点安装Ansible

安装epel源,(官方仓库没有提供ansible相关rpm包)

bash 复制代码
yum -y install epel-release

安装ansible

bash 复制代码
yum -y install ansible

安装完成之后执行ansible --version判断是否正常使用。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-47p6DJr8-1691378563875)(C:\Users\22065\AppData\Roaming\Typora\typora-user-images\image-20230730225130690.png)]

配置Ansible

安装完毕之后,默认的配置文件位置在/etc/ansible目录下,其中含有ansible.cfg 配置文件,hosts默认主机清单,roles角色目录,接下来需要进行修改ansible,cfg配置文件

使用文本编辑工具打开ansible.cfg 内容如下:

意思就是说,从 Ansible 2.12 版本开始,你可以使用 ansible-config init 命令生成一个示例的配置文件。使用 --disabled 参数将生成一个包含所有默认设置的注释文件,这意味着所有设置都被禁用并以注释形式显示。你可以将输出重定向到 ansible.cfg 文件中,以便稍后进行编辑和使用,也可以在Ansible的GitHub仓库中的stable分支中查找示例。

以上仅供了解,推荐直使用GitHub的仓库上的ansible.cfg配置文件,因为ansible-config init 命令生成的配置文件是一个示例文件,包含了所有默认设置,并将这些设置以注释的形式展示出来,生成的配置文件并不是一个完整的、可用的配置文件,因为它将所有的设置都禁用了(通过添加注释)。这样做是为了确保在生成的配置文件中没有任何潜在的影响或冲突。

而在 GitHub 上的 Ansible 仓库中的示例配置文件是一个更完整的配置文件,它包含了一些常用的配置选项和示例值。这个示例配置文件是为了给用户提供一个起点,可以根据自己的需求进行修改和定制。

下载配置文件:

bash 复制代码
cd /etc/ansible
rm -rf ansible.cfg
wget https://github.com/ansible/ansible/blob/stable-2.9/examples/ansible.cfg

如果没有wget命令的话使用yum -y install wget 安装。

编辑示例配置文件,以下是我们要配置的地方;

ini 复制代码
inventory = /etc/ansible/hosts
	#指定 Ansible 的主机清单文件的路径。默认情况下,Ansible 使用 /etc/ansible/hosts 文件作为主机清单,其中包含了要管理的远程主机的列表
	
sudo_user = root 
	#指定在执行远程命令时要使用的 sudo 用户设置为 root,表示使用 root 用户执行命令

ask_pass = False
	#指定是否询问密码,设置为 False,表示不询问密码,因为已经做了免密登录了

roles_path = /etc/ansible/roles
	#指定 Ansible 角色的路径,Ansible 角色是一种组织和重用任务和变量的机制,后面会讲到,在这个示例中,默认为 /etc/ansible/roles

remote_user = root 
	#指定远程主机的登录用户名,设置为 root,表示使用 root 用户登录远程主机

become = True
	#指定是否启用特权升级(become),特权升级允许 Ansible 在远程主机上以不同的用户身份执行命令。在这个示例中,设置为 True,表示启用特权升级

become_method = sudo
	#指定特权升级的方法。这里设置为 sudo,表示使用 sudo 命令进行特权升级

become_user = root 
	# 指定特权升级后要切换到的用户,设置为 root,表示特权升级后切换到 root 用户

become_ask_pass = False 
	#指定是否询问特权升级密码, False,表示不询问特权升级密

配置文件修改完成之后,需要创建主机清单文件,Ansible inventory 主机清单写法详解请参考:https://www.itwk.cc/post/430.html

编辑主机文件/etc/ansible/hosts

ini 复制代码
[servers]
node1.example.com
node2.example.com

测试ansible是否可以与被管理节点通信

使用ping模块检查与被管理节点连通性

使用adhoc方式执行临时命令

复制代码
相关推荐
进击的六角龙9 分钟前
深入浅出:使用Python调用API实现智能天气预报
开发语言·python
檀越剑指大厂9 分钟前
【Python系列】浅析 Python 中的字典更新与应用场景
开发语言·python
湫ccc17 分钟前
Python简介以及解释器安装(保姆级教学)
开发语言·python
孤独且没人爱的纸鹤20 分钟前
【深度学习】:从人工神经网络的基础原理到循环神经网络的先进技术,跨越智能算法的关键发展阶段及其未来趋势,探索技术进步与应用挑战
人工智能·python·深度学习·机器学习·ai
羊小猪~~24 分钟前
tensorflow案例7--数据增强与测试集, 训练集, 验证集的构建
人工智能·python·深度学习·机器学习·cnn·tensorflow·neo4j
lzhlizihang26 分钟前
python如何使用spark操作hive
hive·python·spark
q0_0p27 分钟前
牛客小白月赛105 (Python题解) A~E
python·牛客
极客代码30 分钟前
【Python TensorFlow】进阶指南(续篇三)
开发语言·人工智能·python·深度学习·tensorflow
庞传奇32 分钟前
TensorFlow 的基本概念和使用场景
人工智能·python·tensorflow
华清远见IT开放实验室39 分钟前
【每天学点AI】实战图像增强技术在人工智能图像处理中的应用
图像处理·人工智能·python·opencv·计算机视觉