Ansible是一种自动化工具,使用剧本(Playbooks)来定义和管理任务的执行。剧本是使用YAML语法编写的,它描述了一系列的任务和主机的配置。
下面是一个使用Ansible剧本的示例:
---
- name: Configure web server
hosts: webserver
become: yes
tasks:
- name: Install Apache
apt:
name: apache2
state: present
- name: Configure Apache
template:
src: /path/to/apache.conf.j2
dest: /etc/apache2/apache.conf
owner: root
group: root
mode: '0644'
notify: restart apache
handlers:
- name: restart apache
service:
name: apache2
state: restarted
上述示例中,剧本包含了两个任务:安装Apache和配置Apache。首先,剧本指定了要执行任务的目标主机(webserver),并使用become: yes来以管理员权限运行任务。
接下来,tasks下的第一个任务使用apt模块来安装Apache。name字段是任务的名称,apt是Ansible提供的一个模块,它用于在Debian/Ubuntu系统上安装软件包。state字段指定了软件包的状态,这里是present表示要安装。
第二个任务使用template模块来配置Apache。它从源模板文件/path/to/apache.conf.j2生成目标文件/etc/apache2/apache.conf。owner、group和mode字段指定了生成文件的权限和所有者。notify字段用于在任务执行完后触发一个处理程序。
handlers下的处理程序使用service模块来重新启动Apache服务。它的名称是restart apache,指定了服务名apache2和操作restarted。
这只是一个简单的示例,Ansible剧本的语法和逻辑可以根据需要进行扩展和调整。可以使用其他模块来执行不同的任务,还可以使用条件语句、循环和变量等功能来实现更复杂的逻辑。