12.创建roles
# 在大规模生产环境中,往往需要重复部署很多相同的业务,比如部署数据库,生产中一般都需要部署很多个数据库,但是就只有用户名和密码的不同,这样就会导致剧本的重用率过高
# roles就可以将tasks、变量、文件、模版和其他需要的资源进行打包,打包成一个标准的目录结构,提升剧本的重用性
# 需要先创建roles目录
mkdir roles
# 然后在roles目录下创建对应的目录结构
cd roles
ansible-galaxy init myvhost
# roles结构如下
tree roles/
# 调用roles
---
- name: Use myvhost role playbook
hosts: webservers
pre_tasks:
- name: pre_tasks message
ansible.builtin.debug:
msg: 'Ensure web server configuration.'
roles:
- myvhost
post_tasks:
- name: HTML content is installed
ansible.builtin.copy:
src: files/html/
dest: "/var/www/vhosts/{
{ ansible_hostname }}"
- name: post_tasks message
ansible.builtin.debug:
msg: 'web server is configured.'