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

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

配置主机名

image-20230730223006054

关闭SELINUX

setenforce 0 && sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config

image-20230730223317597

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

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


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密钥

ssh-keygen -t rsa

image-20230730224131989

公钥复制远程服务器

ssh-copy-id [username]@server

image-20230730224332247

验证

image-20230730224530216

安装Ansible

控制节点安装Ansible

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

yum -y install epel-release

安装ansible

yum -y install ansible

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

[外链图片转存失败,源站可能防盗链机制,建议图片保存下来直接上传(img-47p6DJr8-1691378563875)(C:Users22065AppDataRoamingTyporatyporauserimagesimage-20230730225130690.png)]

配置Ansible

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

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

image-20230730225715528

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

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

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

下载配置文件:

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 安装。

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

image-20230730232152157

image-20230730232217060

image-20230730232233716

image-20230730232326421

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

[servers]
node1.example.com
node2.example.com

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

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

image-20230730234121261

使用adhoc方式执行临时命令

image-20230730234208728







原文地址:https://blog.csdn.net/qq_34185638/article/details/132142897

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_39484.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注