Ansible Galaxy命令的使用实践示例详解

Ansible Galaxy 是 Ansible 官方 Roles 资源库(galaxy.ansible.com),在 Galaxy 平台上所有人可以分享 ansible 功能模块,作为一个入门的运维人员,你可以从一些 palybook 开始编写你的自动化项目。但是随着你对 Ansilble playbook 的增加,以及你对 Ansible Role 的需求,你会进一步意识到,使用 Ansible Galaxy 变得非常有价值。Ansible Galaxy 作为 Ansible Roles 的资源库,可以直接放到你的 playbook 中来简化你的自动化项目。,这里有一些有用的 ansiber -galaxy 命令,你可能会经常使用:,ansible-galaxy list 显示已安装 Roles 的列表和版本号,ansible-galaxy remove <role> 删除已安装的角色,ansible-galaxy install 安装 Ansible Galaxy 资源库中的角色.,ansible-galaxy init 初始化 Role 角色模板,根据输出提示,安装的 role 放在相应 Ansible 目录中,查看这个 role 目录结构:,之后,你可以在你的 playbook 中使用该 role,你也可以使用 Ansible -galaxy init 初始化一个新的 galaxy 角色,初始化后的文件目录和上文的 role 目录结构类似, 你可以在task/main.yml 这个 role 的入口文件中,编写各样的 tasks,并结合 templates 中 jinjia2 模块文件等来丰富你要创建的 role 等,Ansible Galaxy 可以使用 git 添加角色源,比如 GitHub。 因此在我们公司的实际使用中,通常会编写一些 Ansbile common Roles(通用角色) 以满足特定的需求。将定义 Ansible Roles 代码放在 Git 仓库中作为公共模块使用,可以更加方便地加载到其他 repo 中, 更好地实践 gitops 和 IaC(infrastructure as code) 理念,例如,在我创建 Kubernetes,Prometheus 等(IaC)项目库里,会常使用 Helm 或者 terraform 这些 role 来部署 AWS 或者 K8S 等相关资源,Ansible 目录结构如下,首先,在 requirements.yml 里定义:,并在 ansible.cfg 中指定 roles 安装路径,使用如下命令安装 roles 模块到指定的路径,安装后,Ansible 目录结构大概如下,接着,在某个 playbook.yml 可以这么引用 Role,来使用 helm deploy K8S 资源,最后,使用ansible-playbook 来部署资源,本文介绍了 Ansible Galaxy 命令的使用,并详谈了在实际工作中你可以如何应用 Galaxy 创建的 role 到你的项目中。使用 Ansible Galaxy 来创造 Role 是一种极好的想法,也是一种理想的方式来组织和管理你不断增长的 playbook。通过简单、强大、无代理、快速有效地扩展基础设施的自动化解决方案,让自己成为更高阶的运维人员,更多关于Ansible Galaxy命令的资料请关注其它相关文章!
返回顶部
跳到底部

Copyright 2011-2024 南京追名网络科技有限公司 苏ICP备2023031119号-6 乌徒帮 All Rights Reserved Powered by Z-BlogPHP Theme By open开发

请先 登录 再评论,若不是会员请先 注册