版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
角色和集合任务3:创建和使用角色目录/Contents0102创建角色目录并定义角色内容使用变量改变角色01创建并使用角色创建角色目录Ansible角色具有标准化的目录结构,可以使用标准Linux命令创建新角色所需的所有目录和文件,也可以通过ansible-galaxy命令行实用程序来自动执行新角色创建流程。基本的角色创建流程包括创建角色目录、定义角色和在Playbook中使用角色。使用ansible-galaxy命令行工具创建角色是一种快速和方便的方法。该命令可用于管理Ansible角色,包括新角色的创建、打包、发布等。运行ansible-galaxyinit命令来创建一个新角色的目录结构,将角色的名称作为参数传递给该命令,该命令将在当前工作目录中创建一个新角色的目录。在项目目录(如home/rhce/playbook/)中,创建角色主目录role。[rhce@ansibleplaybook]$pwd/home/rhce/playbook/[rhce@ansibleplaybook]$mkdirroles[rhce@ansibleplaybook]$lsansible.cfginventoryroles定义角色内容[rhce@ansibleplaybook]$catansible.cfg[defaults]inventory=./inventoryremote_user=rhceask_pass=falsehost_key_checking=Falseroles_path=./roles使用ansible-galaxyinit命令,初始化角色目录结构在ansible.cfg文件中,定义角色路径。[rhce@ansibleplaybook]$ansible-galaxyinit--init-path./roles/apache-Roleapachewascreatedsuccessfully[rhce@ansibleplaybook]$lsroles/apache/defaultsfileshandlersmetaREADME.mdtaskstemplatestestsvars[rhce@ansibleplaybook]$treeroles/apache/roles/apache/├──defaults│└──main.yml├──files├──handlers│└──main.yml├──meta│└──main.yml├──README.md├──tasks│└──main.yml├──templates├──tests│├──inventory│└──test.yml└──vars└──main.yml8directories,8files查看角色信息。[rhce@ansibleplaybook]$ansible-galaxyrolelist#/home/rhce/playbook/roles-apache,(unknownversion)创建角色目录并定义角色内容在apache/defaults目录的main.yml文件中定义要使用的变量,设置httpd的监听端口。---httpd_port:80...在apache/tasks目录的main.yml文件中编写要执行的任务,包括安装httpd、创建目录、复制配置文件和模板文件等任务。----name:Installhttpdyum:name:httpdstate:latest...-name:indexhtmlfileisinstalledtemplate:src:index.html.j2dest:/var/www/html/index.htmlowner:apachegroup:apachenotify:-Restarthttpd创建角色目录并定义角色内容在apache/handlers目录的main.yml文件中定义处理程序,重启httpd服务。----name:Restarthttpdservice:name:httpdstate:restarted在apache/templates目录中,创建一个名为index.html.j2的Jinja2模板文件。[rhce@ansibleplaybook]$catroles/apache/templates/index.html.j2Welcometo{{ansible_facts['fqdn']}}on{{ansible_facts['default_ipv4']['address']}}在Playbook中使用角色,编写deployapache.yml脚本,调用apache角色执行自动化任务。[rhce@ansibleplaybook]$vimdeploy_apache.yml----name:useapacheroleplaybookhosts:webroles:-apache[rhce@ansibleplaybook]$ansible-playbookdeploy_apache.yml02使用变量改变角色使用变量改变角色编写良好的角色并利用默认变量来改变角色行为,使之与相关的配置场景相符,这有助于让角色变得更为通用,可在各种不同的上下文中重复利用。如果通过以下方式定义了相同的变量,则角色的defaults目录中定义的变量的值将被覆盖。在角色默认变量文件中定义变量,在web_server角色defaults/main.yml文件中定义了一个名为system_owner的变量。①在清单文件中定义,作为主机变量或组变量。②在Playbook项目的group_vars或host_vars目录下的YAML文件中定义。③嵌套在play的vars关键字中定义。④在play的roles关键字中包含该角色时定义。#roles/web_server/defaults/main.ymlsystem_owner:root如果在Playbook的group_vars或host_vars目录下的YAML文件中重新定义了system_owner变量,那么在应用角色时,该变量的值将被覆盖为新定义的值。#playbook/group_vars/all.ymlsystem_owner:rhce使用变量改变角色在Playbook的vars关键字中定义变量,使用vars关键字或在包含角色的play的roles关键字中定义变量来覆盖角色的默认值。----name:ExamplePlaybookhosts:allvars:system_owner:someone@roles:-role:web_serverexample_var:"{{system_owner}}"在上述示例中,变量system_owner会被定义并传递给web_server角色,以便在角色中使用。这个变量的优先级最高,将覆盖其他相同变量的定义。web_server角色中的example_var变量的默认值将被覆盖为someone@。使用变量改变角色在Playbook的roles关键字中定义变量-name
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年武汉车都建设投资有限公司招聘笔试参考题库含答案解析
- 2025年度电子产品分期购买与售后服务合同
- 2025年度人事代理与员工薪酬福利调整服务协议3篇
- 2025年高新技术企业授权合同签订委托书规范3篇
- 2025版新能源汽车租赁与智能交通控制系统合作框架协议3篇
- 2025年全球及中国垂直旋转模块行业头部企业市场占有率及排名调研报告
- 2025年全球及中国TGV玻璃芯基材行业头部企业市场占有率及排名调研报告
- 2025版城市更新项目土地使用权作价出资合作协议3篇
- 二零二五年度成都市二手房交易合同范本 正版官方规范修订3篇
- 二零二五年度车队运输保险合作协议3篇
- 小学六年级数学100道题解分数方程
- 部编版五年级语文下册第七单元大单元教学设计
- 社区获得性肺炎护理查房内科
- 浅谈提高中学生历史学习兴趣的策略
- 药品储存养护知识大全
- 新版药品批发企业质量管理体系文件大全
- 项目管理实施规划-无锡万象城
- 浙大一院之江院区就诊指南
- 离婚协议书电子版下载
- 相似三角形判定专项练习30题(有答案)
- 2023学年完整公开课版mydreamjob作文教学
评论
0/150
提交评论