如何搭建ansible roles
发表于:2025-02-04 作者:千家信息网编辑
千家信息网最后更新 2025年02月04日,这篇文章主要介绍如何搭建ansible roles,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!ansible roles在实际的工作当中,一个完整的项目实际上是很多功能体的组
千家信息网最后更新 2025年02月04日如何搭建ansible roles
这篇文章主要介绍如何搭建ansible roles,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
ansible roles
在实际的工作当中,一个完整的项目实际上是很多功能体的组合,如果将所有的功能写在一个playbook中会存在如代码耦合程度高、playbook长而维护成本大、灵活性低等一系列的问题。使用roles能巧妙的解决这一系列的问题。roles是ansible1.2版本后加入的新功能,适合于大项目playbook的编排架构。
ansible roles目录结构
roles能够根据层次型结构自动装载变量文件、task以及handlers等。简单来讲,roles就是通过分别将变量、文件、任务、模块及处理器放置于单独的目录中,并可以便捷地include它们,roles一般用于基于主机构建服务的场景中,但也可以用于构建守护进程等场景中。roles/ common/ files/ templates/ tasks/ handlers/ vars/ defaults/ meta/ web/ files/ templates/ tasks/ handlers/ vars/ defaults/ meta/
roles内各目录含义解释
files:用来存放由copy模块或script模块调用的文件。templates:用来存放jinjia2模板,template模块会自动在此目录中寻找jinjia2模板文件。tasks:此目录应当包含一个main.yml文件,用于定义此角色的任务列表,此文件可以使用include包含其它的位于此目录的task文件。handlers:此目录应当包含一个main.yml文件,用于定义此角色中触发条件时执行的动作。vars:此目录应当包含一个main.yml文件,用于定义此角色用到的变量。defaults:此目录应当包含一个main.yml文件,用于为当前角色设定默认变量。meta:此目录应当包含一个main.yml文件,用于定义此角色的特殊设定及其依赖关系。在一个playbook中使用roles的步骤:1)创建以roles命令的目录。mkdir /etc/ansible/roles/ -p #yum装完默认就有2)创建全局变量目录。mkdir /etc/ansible/group_vars/ -ptouch /etc/ansible/group_vars/all #文件名自己定义,引用的时候注意3)在roles目录中分别创建以各角色名称命令的目录,如httpd。mkdir /etc/ansible/roles/common -p4)在每个角色命令的目录中分别创建files、handlers、tasks、templates、meta、defaults和vars目录,用不到的目录可以创建为空目录,但不可以不创建。mkdir /etc/ansible/roles/httpd/{files,templates,tasks,handlers,vars,defaults,meta} -pmkdir /etc/ansible/roles/mysql/{files,templates,tasks,handlers,vars,defaults,meta} -p5)在每个角色的handlers、tasks、meta、defaults、vars目录下创建main.yml文件,千万不能自定义。touch /etc/ansible/roles/httpd/{defaults,vars,tasks,meta,handlers}/main.ymltouch /etc/ansible/roles/mysql/{defaults,vars,tasks,meta,handlers}/main.yml6)在playbook文件中,调用各角色。vi /etc/ansible/site.yml---- hosts: webserver remote_user: root roles: - httpd - mysql
角色管理,roles安装搭建LAMP架构
[root@localhost ~]# vim /etc/ansible/hosts [ftpserver]192.168.136.251#创建目录,子目录mkdir /etc/ansible/roles/httpd/{files,templates,tasks,handlers,vars,defaults,meta} -pmkdir /etc/ansible/roles/mysql/{files,templates,tasks,handlers,vars,defaults,meta} -pmkdir /etc/ansible/roles/php/{files,templates,tasks,handlers,vars,defaults,meta} -ptouch /etc/ansible/roles/httpd/{defaults,vars,tasks,meta,handlers}/main.ymltouch /etc/ansible/roles/mysql/{defaults,vars,tasks,meta,handlers}/main.ymltouch /etc/ansible/roles/php/{defaults,vars,tasks,meta,handlers}/main.yml#apachej角色[root@localhost roles]# cd /etc/ansible/roles/httpd/tasks/[root@localhost tasks]# vim main.yml - name: install apache yum: pkg={{ servername }} state=latest#定义servername[root@localhost tasks]# cd ../vars/[root@localhost vars]# vim main.yml servername: httpd#mysql角色[root@localhost vars]# cd ../../mysql/tasks/[root@localhost tasks]# vim main.yml - name: install mysqld yum: pkg={{servername}} state=latest[root@localhost tasks]# vim ../vars/main.yml servername: mariadb*#php角色[root@localhost tasks]# cd ../../php/tasks/[root@localhost tasks]# vim main.yml - name: install php yum: pkg={{servername}} state=latest [root@localhost tasks]# cd ../vars/[root@localhost vars]# vim main.yml servername: php#创建总体剧本去控制这些服务[root@localhost vars]# cd /etc/ansible/[root@localhost ansible]# vim site.yml - hosts: ftpserver remote_user: root roles: - httpd - mysql - php [root@localhost ansible]# ansible-playbook site.yml PLAY [ftpserver] ***********************************************************************************TASK [Gathering Facts] *****************************************************************************ok: [192.168.136.251]TASK [httpd : install apache] **********************************************************************changed: [192.168.136.251]TASK [mysql : install mysqld] **********************************************************************changed: [192.168.136.251]TASK [php : install php] ***************************************************************************changed: [192.168.136.251]PLAY RECAP *****************************************************************************************192.168.136.251 : ok=4 changed=3 unreachable=0 failed=0
以上是"如何搭建ansible roles"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!
目录
文件
角色
变量
模块
命令
任务
内容
功能
场景
实际
架构
模板
篇文章
结构
问题
项目
服务
便捷
巧妙
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
如何做好涉密网络安全的管理工作
网络安全支撑单位颁发仪式
网易我的世界深渊地狱服务器
如何实施网络安全法
华鑫证券服务器配置
p图的软件开发
用友软件访问数据库慢
我的世界野外生存服务器
华为2012实验室网络技术
五年级网络安全小卫士手抄报
义乌java软件开发要求
全柜互联网科技有限公司
基于零信任的网络安全策略
数据库面试常见题
数据库开发 技术路线
消防网络安全直播课
消防开展网络安全自查工作
音乐播放平台数据库设计
搅拌站数据库连接错误
北京软件开发者收费标准
如何做好涉密网络安全的管理工作
沃噻互联网科技有限公司
新城区政府网络安全
jsp向数据库写数据类型
网络安全管理员二级技师
网络技术就是网络工程吗
服务器评测开箱
app服务器安全架构
江西重点科技信息互联网
英语不好能学网络安全