1.概念
所谓的role是一种规范的文件组织方式。它只是抽象的一种概念,而不是实质存在的东西。role的存在是为了更好的维护playbook。
role和playbook的区别就是:playbook会明确哪些远程服务器需要执行哪些任务;而role只是保存需要执行的任务。我们需要在playbook中引用roles。
role的目录结构,每个目录或者文件都不是必须的,都是可选的:
[root@Ansible ansible]# ll roles/geerlingguy.nginx/ total 16 drwxr-xr-x. 2 root root 22 May 11 17:17 defaults drwxr-xr-x. 2 root root 22 May 11 17:17 handlers -rw-rw-r--. 1 root root 1080 Jun 7 2019 LICENSE drwxr-xr-x. 2 root root 50 May 11 17:17 meta drwxr-xr-x. 3 root root 21 May 11 17:17 molecule -rw-rw-r--. 1 root root 11497 Jun 7 2019 README.md drwxr-xr-x. 2 root root 189 May 11 17:17 tasks drwxr-xr-x. 2 root root 64 May 11 17:17 templates drwxr-xr-x. 2 root root 101 May 11 17:17 vars
各个目录及文件的意义:
- default/main.yml:可以覆盖的默认变量。
- files:保存需要上到到服务器的文件。
- handlers/main.yml:包含所有的handler。
- meta/main.yml:role的依赖信息。
- tasks/main.yml:包含任务列表。
- templates:保存jinja2模板。
- vars/main.yml:不应该被覆盖的变量。
2.ansible-galaxy管理role
ansible-galaxy是一个命令行工具,可以使用它创建一个标准的role结构目录。galaxy.ansible.com是一个playbook的分享平台,可以直接下载安装自己所需要的role。
初始化一个roles的目录结构:
[root@Ansible ansible]# ansible-galaxy init roles/test - Role roles/test was created successfully [root@Ansible ansible]# ll roles/test/ total 4 drwxr-xr-x. 2 root root 22 Sep 23 21:49 defaults drwxr-xr-x. 2 root root 6 Sep 23 21:49 files drwxr-xr-x. 2 root root 22 Sep 23 21:49 handlers drwxr-xr-x. 2 root root 22 Sep 23 21:49 meta -rw-r--r--. 1 root root 1328 Sep 23 21:49 README.md drwxr-xr-x. 2 root root 22 Sep 23 21:49 tasks drwxr-xr-x. 2 root root 6 Sep 23 21:49 templates drwxr-xr-x. 2 root root 39 Sep 23 21:49 tests drwxr-xr-x. 2 root root 22 Sep 23 21:49 vars
安装一个role:
ansible-galaxy install 作者ID.roles名称
[root@Ansible roles]# ansible-galaxy install -p /etc/ansible/roles/ bennojoy.mysql - downloading role 'mysql', owned by bennojoy - downloading role from https://github.com/bennojoy/mysql/archive/master.tar.gz - extracting bennojoy.mysql to /etc/ansible/roles/bennojoy.mysql - bennojoy.mysql (master) was installed successfully [root@Ansible roles]# ll total 0 drwxr-xr-x. 8 root root 109 Sep 23 21:53 bennojoy.mysql drwxr-xr-x. 10 root root 154 Sep 23 21:49 test
在playbook中引用roles:
--- - hosts: dbservers roles: - role: bennojoy.mysql
「 文章如果对你有帮助,请点个赞哦^^ 」 
1+
若无特殊注明,文章均为本站原创或整理发布。
转载请注明本文地址:https://om.fangxiaoxiong.com/3145.html