以下是一个简单的 Ansible Playbook 示例:
假设我们有两台主机,一个是 web 服务器,一个是数据库服务器,我们要在 web 服务器上安装 Nginx,并在数据库服务器上安装 MySQL。
首先,我们需要在一个目录中创建一个名为 hosts 的文件,其中包含两台主机的 IP 地址或主机名,如下所示:
[web]
web.example.com
[db]
db.example.com
然后,我们创建一个名为 playbook.yml 的 Playbook 文件,内容如下:
- name: Install and configure Nginx
hosts: web
become: true
tasks:
- name: Install Nginx
yum:
name: nginx
state: present
- name: Start Nginx service
service:
name: nginx
state: started
enabled: true
- name: Install and configure MySQL
hosts: db
become: true
tasks:
- name: Install MySQL
yum:
name: mysql-server
state: present
- name: Start MySQL service
service:
name: mysqld
state: started
enabled: true
该 Playbook 包含两个任务(task):
- 在 web 服务器上安装和配置 Nginx。
- 在数据库服务器上安装和配置 MySQL。
每个任务都有一个名称(name)、一个主机列表(hosts)和一组任务(tasks)。
在每个任务中,我们使用 yum 模块安装相应的软件包,然后使用 service 模块启动服务并设置开机自启动。
最后,我们可以使用 ansible-playbook 命令执行该 Playbook:
ansible-playbook -i hosts playbook.yml
这将在两台主机上分别执行 Playbook 中的任务,完成软件包的安装和配置。
这只是一个简单的例子,Ansible Playbook 还可以使用更多的模块、变量、循环和条件语句等功能,以实现更复杂的自动化任务。