系列文章
目录
Ansible安装
- 在安装 Ansible 之前确实需要确保目标系统(即控制节点和被管理节点)上已经安装了 Python。这是因为 Ansible 依赖于 Python 来与被管理节点进行通信,并执行各种任务。
- Ansible安装在控制节点,受管节点(Ansible 管理的机器)不需要安装 Ansible,但需要 Python 来运行 Ansible 生成的 Python 代码。 受管节点还需要一个用户账户,该账户可以通过 SSH 连接到带有交互式 POSIX shell 的节点。
ansible的安装方法有多种。
- EPEL源的rpm包安装:
bash
yum install ansible
- 编译安装
bash
yum -y install python-jinja2 PyYAML python-paramiko python-babel python-crypto
tar xf ansible-1.5.4.tar.gz
cd ansible-1.5.4
python setup.py build
python setup.py install
mkdir /etc/ansible
cp -r examples/* /etc/ansible
- Git方式
bash
git clone git://github.com/ansible/ansible.git --recursive
cd ./ansible
source ./hacking/env-setup
- pip 安装
pip 是安装Python包的管理器,类似 yum
bash
yum install python-pip python-devel
yum install gcc glibc-devel zibl-devel rpm-bulid openssl-devel
pip install --upgrade pip
pip install ansible --upgrade
确认安装
bash
ansible --version
演示
这里准备3台虚拟机:
主机 | 操作系统 | IP地址 | 角色 | 主要软件 |
---|---|---|---|---|
server1 | Rocky Linux 8.8 | 192.168.30.121 | 控制机器 | ansible |
server2 | Rocky Linux 8.8 | 192.168.30.122 | 受控机器 | httpd |
server3 | Rocky Linux 8.8 | 192.168.30.123 | 受控机器 | mysql |
下面演示在server1上的操作。
- 修改主机名及关闭防火墙
bash
hostnamectl set-hostname server1
systemctl stop firewalld
systemctl disable firewalld
- yum安装epel源和ansible并查看其结构
bash
yum install -y epel-release ansible
...
bash
ansible --version
在/etc/ansible
中有三个重要的文件和目录:
-
ansible.cfg :
ansible.cfg 是 Ansible 的全局配置文件,用于设置 Ansible 的默认行为和参数。这个文件可以自定义 Ansible 的行为,例如设置默认的连接方式、身份验证方法、日志级别等等。
-
hosts :
hosts 文件是 Ansible 的清单文件,用于指定被管理节点(也称为"主机")及其属性。在这个文件中,我们可以定义不同组的主机,以及每个组内的主机列表。例如,可以创建一个名为 webservers 的组,然后将所有 Web 服务器添加到这个组中。这样,在执行任务时就可以针对这个组而不是单独的每一台服务器。
清单文件还可以包含变量,这些变量可以在剧本中使用,以提供动态配置的能力
-
roles :
roles 目录是存放 Ansible 角色的地方。角色是一种可复用的 Ansible 内容集合,包含任务、处理程序、变量、模板和文件。角色可以帮助我们组织和重用代码,提高效率。
我们可以创建自己的角色,也可以从 Ansible Galaxy(一个第三方角色存储库)下载和安装其他人编写的角色