在CentOS 7中安装与配置Ansible的详细图文教程

一、引言

1、Centos 7.9简介

CentOS 7.9 是基于 Red Hat Enterprise Linux (RHEL) 7.9 源代码构建的稳定、可靠的企业级 Linux 发行版,提供了最新的安全更新和性能改进,适用于服务器和桌面环境。它支持广泛的硬件平台,并集成了多种网络服务和虚拟化技术,如 KVM 和 Docker,适合用于部署 Web 服务器、数据库和其他企业应用。通过 yum 包管理器和 systemd 系统和服务管理器,CentOS 7.9 提供了简便的软件包管理和系统配置体验,是构建和管理稳定 IT 基础设施的理想选择。

在CentOS 7中安装与配置Ansible的详细图文教程

2、Ansible简介

Ansible 是一个简单而强大的自动化工具,用于配置管理、应用部署和任务编排,它通过 SSH 连接远程主机,默认使用基于 YAML 的易读 playbook 来定义自动化任务,无需在客户端安装额外的代理软件,支持广泛的模块和插件以扩展功能,适用于大规模 IT 基础设施的自动化操作。

在CentOS 7中安装与配置Ansible的详细图文教程

二、安装Ansible

1、服务器准备

这里准备了三台服务器,一台作为control节点,两台作为node节点

在CentOS 7中安装与配置Ansible的详细图文教程

2、添加yun源

在三台机器上分别执行

wget -O /etc/yum.repos.d/CentOs-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum clean all
yum makecache

3、安装Ansible

只在control节点执行

[root@control ~]# sudo yum install -y ansible

版本检查

[root@control ~]# ansible --version

在CentOS 7中安装与配置Ansible的详细图文教程

三、配置Ansible

1、配置Ansible主机清单

Ansible 需要配置目标主机的清单,默认情况下,Ansible 会使用 /etc/ansible/hosts 作为清单文件。

编辑该文件,定义被管理的节点(目标主机)。

[root@control ~]# vim /etc/ansible/hosts

在该文件中,添加类似以下内容来配置目标主机(你可以根据实际情况修改主机名或 IP 地址):

[test]
192.168.40.101
192.168.40.102

[test] 是主机组的名称,可以根据实际需要进行命名。 在每个组下,列出被管理的主机或 IP 地址。

在CentOS 7中安装与配置Ansible的详细图文教程

2、配置 SSH 免密登录

Ansible 与目标主机通过 SSH 协议进行通信。为了避免每次操作时输入密码,通常配置 SSH 免密登录。

在控制节点上,使用 ssh-keygen 生成 SSH 公私钥对:

一路回车即可

[root@control ~]# ssh-keygen -t rsa -b 2048

然后,将生成的公钥复制到目标主机:

[root@control ~]# ssh-copy-id root@192.168.40.101
[root@control ~]# ssh-copy-id root@192.168.40.102

在CentOS 7中安装与配置Ansible的详细图文教程

完成后,测试免密登录是否成功:

[root@control ~]# ssh 192.168.40.101
[root@control ~]# ssh 192.168.40.102

如果能够成功登录并无需输入密码,则 SSH 免密登录配置成功。

3、配置 Ansible 配置文件(可选)

Ansible 的配置文件 /etc/ansible/ansible.cfg 是可选的,可以根据需要进行定制化配置。常见的配置项包括:

inventory:指定清单文件的路径。 remote_user:指定默认的远程用户。 become:是否启用 sudo 提权。

例如,编辑配置文件来设置默认的远程用户:

[root@control ~]# vim /etc/ansible/ansible.cfg

添加如下内容

[defaults]
inventory = /etc/ansible/hosts
remote_user = root
become = yes
become_method = sudo

在CentOS 7中安装与配置Ansible的详细图文教程

4、测试 Ansible 配置

安装和配置完成后,可以运行一个简单的命令来测试 Ansible 是否能够正确与目标主机通信。

运行 ping 模块,检查目标主机的连接:

[root@control ~]# ansible all -m ping

如果一切配置正确,应该返回类似以下的输出:

在CentOS 7中安装与配置Ansible的详细图文教程

5、使用 Ansible 执行任务

使用 Ansible 可以执行简单的命令,比如在所有目标主机上查看系统时间:

[root@control ~]# ansible all -m command -a "date"

在CentOS 7中安装与配置Ansible的详细图文教程

四、常用命令

1、ansible — 执行单条命令

用于在单个主机或一组主机上执行简单的命令或任务。

ansible <host-pattern> -m <module> -a "<module-args>"

<host-pattern>:目标主机或主机组。 -m <module>:指定 Ansible 模块(如 ping、shell、copy 等)。 -a "<module-args>":传递给模块的参数。

示例:
Ping 主机:

ansible all -m ping

该命令会在所有目标主机上执行 ping 测试,确保它们可以正常访问。

执行命令:

ansible web_servers -m shell -a "uptime"

在 web_servers 主机组上的所有主机执行 uptime 命令。

2、ansible-playbook — 执行剧本

用于执行定义好的 剧本(Playbook),剧本是由一组任务组成的 YAML 文件。

ansible-playbook <playbook.yml>

<playbook.yml>:指定要执行的 Playbook 文件。

示例:
执行 Playbook:

ansible-playbook site.yml

这会执行 site.yml 文件中定义的所有任务。

指定变量文件:

ansible-playbook -i inventory.ini site.yml --extra-vars "@vars.json"

3、ansible-galaxy — 管理 Ansible 角色

用于管理 Ansible 角色和集合。可以用来从 Ansible Galaxy 下载角色、创建新角色等。

ansible-galaxy <command> <role-name>

常用子命令:
安装角色:

ansible-galaxy install <role-name>

创建角色:

ansible-galaxy init <role-name>

在CentOS 7中安装与配置Ansible的详细图文教程

4、ansible-inventory — 查看库存文件

用于查看 Ansible 的库存文件(即目标主机列表),或动态生成目标主机清单。

ansible-inventory --list

查看 JSON 格式的库存:

ansible-inventory -i inventory.ini --list

查看主机组列表:

ansible-inventory -i inventory.ini --host <hostname>

5、ansible-vault — 加密敏感数据

用于加密、解密文件或变量,常用于保护敏感信息(如密码、密钥等)。

ansible-vault <command> <file>

常用子命令:

创建加密文件:

ansible-vault create <file>

编辑加密文件:

ansible-vault edit <file>

加密现有文件:

ansible-vault encrypt <file>

解密文件:

ansible-vault decrypt <file>

查看加密文件内容:

ansible-vault view <file>

在CentOS 7中安装与配置Ansible的详细图文教程

6、ansible-doc — 查看模块文档

用于查看 Ansible 模块的文档,获取模块的使用说明和参数。

ansible-doc <module-name>

示例:

查看 copy 模块的文档:

ansible-doc copy

以上就是在CentOS 7中安装与配置【Ansible】的详细指南的详细内容,更多相关资料请阅读主机测评网其它文章!

原创文章,作者:admin,如若转载,请注明出处:https://hostingchat.cn/2747.html

(0)
admin的头像admin
上一篇 2025年7月11日 上午12:00
下一篇 2025年7月13日 上午12:00

相关推荐

发表回复

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