Linux自动化运维(Shell与Ansible)(微课版) 课件 11-4-Ansible Galaxy部署角色_第1页
Linux自动化运维(Shell与Ansible)(微课版) 课件 11-4-Ansible Galaxy部署角色_第2页
Linux自动化运维(Shell与Ansible)(微课版) 课件 11-4-Ansible Galaxy部署角色_第3页
Linux自动化运维(Shell与Ansible)(微课版) 课件 11-4-Ansible Galaxy部署角色_第4页
Linux自动化运维(Shell与Ansible)(微课版) 课件 11-4-Ansible Galaxy部署角色_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

角色和集合任务4:AnsibleGalaxy部署角色目录/Contents01020304AnsibleGalaxy简介AnsibleGalaxy命令行工具使用ansible-galaxy命令管理角色使用requirements.yml文件安装角色01AnsibleGalaxy简介AnsibleGalaxy简介AnsibleGalaxy是Ansible社区维护的开源平台,用户可访问平台网站来搜索、评估、下载和共享Ansible角色和集合等内容,从而更快速地启动自动化项目。通过AnsibleGalaxy主页上的“Documentation”,可以进入描述如何使用AnsibleGalaxy的页面,其中包含如何从AnsibleGalaxy下载和使用角色和集合的内容,该页面也提供关于如何开发角色和集合并上传到AnsibleGalaxy的说明。AnsibleGalaxy主页如图所示。AnsibleGalaxy简介在AnsibleGalaxy主页上可以找到各种用于基础设施部署、应用程序部署以及日常任务管理的角色或集合,这些内容通常由社区成员创建、共享和维护。通过AnsibleGalaxy主页上左侧的“Search”,用户可以查看在AnsibleGalaxy上发布的内容。以角色为例,通过角色的名称或通过其他角色属性来搜索Ansible角色,搜索结果会按照BestMatch分数降序排列,此分数会依据角色质量、角色受欢迎程度、搜索条件进行计算,用户可以按照不同的标签、作者、星级和下载量等来筛选和排序搜索结果。AnsibleGalaxy会统计各个角色和集合的下载次数,以及它们的GitHub存储库拥有的watchers、forks和stars的数量。用户可以根据这些信息来确定角色或者集合的开发活跃程度,以及Ansible角色或集合在社区中的受欢迎程度。使用AnsibleGalaxy的搜索页面可以找到适用于用户项目的Ansible角色或者集合,然后按照说明文档将它们下载到Ansible管理主机上。同时,用户也可以通过AnsibleGalaxy来共享自己创建的Ansible内容,从而为整个社区做出贡献,帮助其他用户更好地利用Ansible实现自动化。AnsibleGalaxy简介AnsibleGalaxy还提供了一些扩展功能,比如评级、评论和标签等,可以帮助用户更好地了解和选择适用于自己项目的内容。通过搜索框右侧的“Filters”下拉菜单,可以按照Collection、Role、ContentName、DownloadCount、NamespaceName、Tags、Platforms等来搜索。如图显示了在执行docker关键字搜索并按照下载量排序后,AnsibleGalaxy显示的搜索结果。02AnsibleGalaxy命令行工具AnsibleGalaxy命令行工具ansible-galaxy命令是管理Ansible角色和集合的重要工具,可以用于创建、下载、发布、安装、删除、打包、搜索角色和集合等操作。ansible-galaxy命令的基本语法如下:ansible-galaxy<subcommand>[options][arguments]其中,subcommand表示要执行的子命令,可以是collection或role;options表示可选的命令选项,用于指定一些特定的行为或配置信息;arguments表示子命令需要的参数,用于执行特定的操作。ansible-galaxy命令中与role子命令相关的选项如表所示。序号选项描述1roleinit用于初始化新的Ansible角色。该命令会生成角色基本文件和目录结构,以便用户构建角色内容。比如ansible-galaxyroleinitmyrole命令会在当前目录下创建一个名为myrole的角色,参数-init-path可以指定角色创建的路径(默认为当前工作目录)2rolelist列出所有已经安装的角色,以及它们的名称、作者和版本号,比如ansible-galaxyrolelist命令会列出所有已经安装的角色AnsibleGalaxy命令行工具序号选项描述3rolesearch在AnsibleGalaxy上搜索角色,可以根据名称、作者、标签等进行搜索。比如ansible-galaxyrolesearchnginx将搜索名称包含nginx的角色,ansible-galaxyrolesearch--galaxy-tagsweb,nginx将按web、nginx标签搜索角色4roleimport将一个已经存在于GitHub上的角色导入AnsibleGalaxy。该命令需要GitHub用户名和仓库名称作为参数,并通过GitHubAPI获取角色代码,然后将其上传到AnsibleGalaxy上。比如执行ansible-galaxyroleimportgithub_usernamemyrole--role-namemynewrole

命令后,AnsibleGalaxy将会创建一个名为mynewrole的新角色,并将GitHub仓库github_username/myrole中的代码上传到该角色中5rolesetup用于在AnsibleGalaxy中设置GitHub集成。通过设置GitHub集成,可以将GitHub存储库与AnsibleGalaxy角色关联起来,以便在GitHub上进行代码更改时,自动更新AnsibleGalaxy角色。在执行ansible-galaxyrolesetup命令时,需要提供以下参数:source用于指定GitHub集成的源,可以是github或gitlab;github_user用于指定GitHub用户名;github_repo用于指定要与AnsibleGalaxy角色关联的GitHub仓库名称;secret用于指定用于验证Webhook的密钥6roleinfo用于获取角色的详细信息,包括作者、依赖项、标签、许可证、支持的平台等,比如执行ansible-galaxyroleinforhel-system-roles.podman命令,显示结果如下:Role:rhel-system-roles.podmandescription:Roleformanagingpodmandependencies:[]galaxy_info:author:RichardMegginsonrmeggins@company:RedHat,Inc.galaxy_tags:['podman','containers']license:MITmin_ansible_version:2.9platforms:[{'name':'Fedora','versions':['all']},{'name':'EL','versions':['8','9']}]path:('/home/rhce/.ansible/roles','/usr/share/ansible/roles','/etc/ansible/roles')其中包括角色的详细信息,包括作者为RichardMegginson,公司为RedHat,Inc.,标签为podman和containers,许可证为MIT,Ansible最低版本为2.9,支持的平台为Fedora和EL8、EL9。同时,还列出了Ansible角色搜索路径列表7roleinstall用于从AnsibleGalaxy或其他源安装Ansible角色,执行该命令可以将角色下载到本地,并安装到指定的Ansible角色路径中,以便在AnsiblePlaybook中使用。比如执行ansible-galaxyroleinstallgeerlingguy.apache命令将从AnsibleGalaxy安装geerlingguy.apache角色。如果默认情况下未指定角色路径,则该角色被安装在/etc/ansible/roles目录中。如果需要将其安装在其他位置,可以通过-p或--roles-path参数指定,比如ansible-galaxyroleinstall-p/path/to/rolesgeerlingguy.apache。如果指定的角色已经存在,但想要覆盖它,则可以使用-f或--force参数强制覆盖,比如ansible-galaxyroleinstall-fgeerlingguy.apache。执行ansible-galaxyroleinstall--role-filerequirements.yml命令将从requirements.yml文件中读取角色列表,并将其安装在默认的Ansible角色路径中8roleremove用于从本地系统中删除一个或多个Ansible角色。该命令可以接收一个或多个角色名称作为参数,并将这些角色从指定的Ansible角色路径中删除。比如执行命令ansible-galaxyroleremoveapachemysql将删除名为apache和mysql的两个角色9roledelete用于从AnsibleGalaxy上删除一个指定的角色。该命令需要指定要删除角色的GitHub用户名和存储库名称,以及可选的一些参数来设置操作。比如执行ansible-galaxyroledeletegeerlingguyapache将从AnsibleGalaxy上删除geerlingguy.apache角色,该角色的存储库位于GitHub上的geerlingguy/ansible-role-apache。删除角色是一个不可逆的操作。在执行此命令之前,请确保真正需要删除该角色,并且已经备份了该角色的相关文件ansible-galaxy命令中与role子命令相关的选项如表所示。03ansible-galaxy命令管理角色使用ansible-galaxy命令管理角色ansible-galaxy命令是Ansible自带的工具,可用于从AnsibleGalaxy或直接从基于Git的SCM(源代码管理)安装角色。还可以使用它创建新角色、删除角色或在AnsibleGalaxy网站上执行任务。默认情况下,该命令行工具使用作为服务器地址与AnsibleGalaxy网站API通信。如果用户在企业内部部署了私有AnsibleGalaxy服务器,可以使用--server选项指定它的地址或者使用ansible.cfg文件永久地设置AnsibleGalaxy服务器选项。安装角色前,可以在AnsibleGalaxy搜索需要安装的角色,或者通过命令搜索角色。[rhce@controlproject-roles]$ansible-galaxysearchgeerlingguy.mysqlFound1rolesmatchingyoursearch:NameDescription---------------geerlingguy.mysqlMySQLServer-InstallandconfigureMySQLserveronRHEL/CentOSandDebian/Ubuntu.使用ansible-galaxy命令管理角色使用ansible-galaxyinstall<role_name>安装角色。使用list选项显示安装在roles_path中的每个角色的名称和版本信息。[rhce@controlproject-roles]$ansible-galaxyrolelist#/home/rhce/ansible/project-roles/roles-apache,(unknownversion)-haproxy,(unknownversion)-phpinfo,(unknownversion)-geerlingguy.mysql,4.3.2[rhce@controlproject-roles]$ansible-galaxyinstallgeerlingguy.mysql-downloadingrole'mysql',ownedbygeerlingguy-downloadingrolefrom/api/v2/roles/8341-extractinggeerlingguy.mysqlto/etc/ansible/roles/geerlingguy.mysql-geerlingguy.mysql(1.9.10)wasinstalledsuccessfully使用ansible-galaxy命令管理角色在Playbook文件中,通过roles关键字来指定使用geerlingguy.mysql角色。使用remove选项从roles_path中删除角色。[rhce@controlproject-roles]$ansible-galaxyremovegeerlingguy.mysql-successfullyremovedgeerlingguy.mysql[rhce@controlproject-roles]$ansible-galaxyrolelist#/home/rhce/ansible/project-roles/roles-apache,(unknownversion)-haproxy,(unknownversion)-phpinfo,(unknownversion)-name:InstallandconfigureMySQLserverhosts:db_serverbecome:trueroles:-geerlingguy.mysql04使用requirements.yml文件安装角色使用requirements.yml文件安装角色为了方便地管理和部署多个角色及其依赖项,可以在requirements.yml文件中定义角色及其版本号来自动下载并安装这些角色及其依赖项。requirements.yml是一个YAML格式的文件,其中包含一个或多个角色及其版本号,文件中的角色可以设定一个或多个属性。其主要属性如表所示。序号属性描述1src角色的来源,如果从AnsibleGalaxy下载,格式为namespace.role_name,或者提供指向基于Git的SCM存储库的URL2scm指定版本控制系统,默认为Git方式。如果角色托管在AnsibleGalaxy中,或者以tar归档形式托管在Web服务器上,则省略scm属性3version指定下载的角色的版本,可以提供发布的标签值、提交的哈希值或分支名称。如果仓库中没有设置默认分支,则默认为master分支4name将用指定的名称下载角色。从AnsibleGalaxy下载时默认为AnsibleGalaxy名称,否则,默认为存储库的名称使用requirements.yml文件安装角色在requirements.yml文件中,每个角色至少需要指定src属性,表示角色的来源,其他属性,比如version、scm和name是可选的,可以根据需要进行指定。以下是requirements.yml文件的具体示例。-name:nginxsrc:geerlingguy.nginxversion:2.5.0-name:mysqlsrc:/ansible/mysql.gitscm:gitversion:1.0.0-name:apachesrc:geerlingguy.apache-name:nginxsrc:git+file:///home/bennojoy/nginx#fromawebserver,where

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论