什么是Ansible?怎么安装Ansible?

一、Ansible是什么
Ansible 是一款极其流行的开源自动化工具,用 Python 语言编写。它的核心功能是自动化应用部署、配置管理、任务编排。
简单来说,Ansible 可以让你告别手动、重复地在多台服务器上执行命令、安装软件、修改配置的繁琐工作,实现“一次编写,处处运行”的自动化运维。
二、核心特点与优势
幂等性:意味着一个 Ansible 任务(或剧本)无论执行多少次,最终的结果都是一致的。
优势:安全、可重复执行。
简单易懂:yaml的语法非常的直观,配置和编排文件的格式容易操作的。
强大的模块化:ansible拥有许多模块,覆盖了系统、平台、网络设备、数据库等等。
三、核心组件
控制节点:安装并运行ansible的设备,用于管理自动化任务
被管理节点:被ansible控制
清单:定义了被管理的节点列表,可分组。
模块:执行特定的任务
任务:调用某一个模块并附带参数,就是一个任务。
剧本:自动化部署的核心文件,将一个或多个任务合并成一个完成的自动化流程。
角色:更高级的组织方式,用于将剧本、变量、文件、模板等按照标准目录结构进行分组,角色可以时间代码的复用和共享。
总结
ansible是简单、安全、具有幂等性等特性,极大提高了效率、减少人为出错。
四、开始安装ansbile(本次系统为Rcoky9)
dnf install -yhttps://mirrors.aliyun.com/epel/epel-release-latest-9.noarch.rpm
配置EPEL仓库(使用正则表达式)
sed -i 's|^#baseurl=https://download.example/pub|baseurl=https://mirrors.aliyun.com|g' /etc/yum.repos.d/epel*
sed -i 's|^metalink=|#metalink=|g' /etc/yum.repos.d/epel*
禁用思科的OpenH264编码的子仓库
目的是仓库是为了给你的系统选择一个统一、一致的软件来源)
sed -i 's/^enabled\s*=\s*1/enabled = 0/g' /etc/yum.repos.d/epel-cisco-openh264.repo
清理缓存,
dnf clean all
dnf makecache
安装ansbile核心组件,并查看ansible版本号
dnf install -y ansible-core ansible
ansible --version
配置变量环境
cat > /etc/profile.d/ansible.sh <<EOF
export ANSIBLE_HOST_KEY_CHECKING=False
EOF
安装crudini工具
which crudini || yum install -y crudini
source /etc/profile.d/ansible.sh
确保配置目录存在
mkdir -p /etc/ansible
修改ansible.cfg配置文件
crudini --set /etc/ansible/ansible.cfg defaults host_key_checking False
cat /etc/ansible/ansible.cfg | grep -vE "^\s*(#|$)" || echo "配置文件为空或不存在"
验证配置是否生效
ansible-config dump --only-changed
配置清单,为被控端安装python组件。(清单写法并非这一种)
cat <<’EOF’ > linuxHost.list
[linuxHosts]
## 主机名 目标主机的ip SSH连接的用户名 SSH连接时的密码
Rocky9-61 ansible_ssh_host=10.0.0.61 ansible_ssh_user=root ansible_ssh_pass='a123456!'
Rocky9-62 ansible_ssh_host=10.0.0.62 ansible_ssh_user=root ansible_ssh_pass='a123456!'
EOF
在linuxHost.list这个清单中,all所有的主机都要执行dnf install -y python3 python3-dnf python3-libselinux
ansible all -i linuxHost.list -m raw -a 'dnf install -y python3 python3-dnf python3-libselinux'
本文内容仅供参考,不构成任何专业建议。使用本文提供的信息时,请自行判断并承担相应风险。



