如何搭建ansible roles
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,这篇文章主要介绍如何搭建ansible roles,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!ansible roles在实际的工作当中,一个完整的项目实际上是很多功能体的组
千家信息网最后更新 2025年12月02日如何搭建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安全错误
数据库的锁怎样保障安全
濮阳t3财务软件开发
海南美寓互联网科技有限公司
数据库删除后怎么找回
中国保护网络安全隐私的历史
税控服务器怎么下发发票
广州无比乐网络技术公司
粤政易软件开发公司
广东服务器虚拟化迁移云空间
网络安全教育电信诈骗
软件开发项目路演
软件开发需要学习哪些
网络安全法的心得体会600字
墨菲网络技术有限公司
汽车网络技术的作用
随州靠谱的软件开发企业
从事网络安全工作的规划
云服务器装系统
声誉好的服务器安全防护
什么是数据库scheme
想学软件开发去什么大学
华为服务器报10f代码
梦幻西游合体服务器比赛
学java用软件开发
php基础学什么软件开发
中国网络安全大会是什么时候
广州软件开发培训机构哪个好
新华三芯片软件开发工程师
python聊天软件开发
我的世界服务器如何防止凋零
数据库都有什么操作