<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
Ansible Galaxy 是 Ansible 官方 Roles 資源庫(galaxy.ansible.com),在 Galaxy 平臺上所有人可以分享 ansible 功能模組
作為一個入門的運維人員,你可以從一些 palybook 開始編寫你的自動化專案。但是隨著你對 Ansilble playbook 的增加,以及你對 Ansible Role 的需求,你會進一步意識到,使用 Ansible Galaxy 變得非常有價值。Ansible Galaxy 作為 Ansible Roles 的資源庫,可以直接放到你的 playbook 中來簡化你的自動化專案。
[root@localhost root]# ansible-galaxy --help Usage: ansible-galaxy [delete|import|info|init|install|list|login|remove|search|setup] [--help] [options] ... Options: -h, --help show this help message and exit -c, --ignore-certs Ignore SSL certificate validation errors. -s API_SERVER, --server=API_SERVER The API server destination -v, --verbose verbose mode (-vvv for more, -vvvv to enable connection debugging) --version show program's version number and exit See 'ansible-galaxy <command> --help' for more information on a specific command.
這裡有一些有用的 ansiber -galaxy 命令,你可能會經常使用:
ansible-galaxy list
顯示已安裝 Roles 的列表和版本號
ansible-galaxy remove <role>
刪除已安裝的角色
ansible-galaxy install
安裝 Ansible Galaxy 資源庫中的角色.
ansible-galaxy init
初始化 Role 角色模板
[root@localhost root]# ansible-galaxy search helm Found 54 roles matching your search: Name Description ---- ----------- aalaesar.helm_release Create, update, upgrade an delete Helm releases using Ansible and the Helm CLI abdennour.kube_local_environment Installs kubernetes utilities for DevOps environment acikogun.winit An extensible installer for tools listed below. ansible awscli azurecli cloudsdk docker docker-compose eksctl go helm java8 java11 node packer terraform vagrant afonsog.k8s_helm Install helm on master nodes & tiller on k8s-cluster afpacket.devops_tools Ansible role for installing DevOps tools alvarobacelar.ansible_role_helm_istio Role de instalação do helm e istio andrewrothstein.kubernetes-helm installs kubernetes helm ansible-ThoTeam.nexus3-oss Nexus Repository Manager 3.x (Sonatype) Anthony25.kubernetes-keel Install Keel on Kubernetes antongorkovenko.k8s Kubernetes: setup master and worker nodes ...
ansible-galaxy install dodas.helm
[root@localhost root]# ansible-galaxy install dodas.helm - downloading role 'helm', owned by dodas - downloading role from https://github.com/DODAS-TS/ansible-role-helm/archive/v2.0.0-rc5.tar.gz - extracting dodas.helm to <path>/roles/dodas.helm - dodas.helm (v2.0.0-rc5) was installed successfully
根據輸出提示,安裝的 role 放在相應 Ansible 目錄中
檢視這個 role 目錄結構:
[root@localhost root]# tree . ├── defaults │ └── main.yml ├── handlers │ └── main.yml ├── meta │ └── main.yml ├── README.md ├── tasks │ ├── helm.yml │ └── main.yml ├── tests │ ├── inventory │ └── test.yml └── vars └── main.yml 6 directories, 9 files
之後,你可以在你的 playbook 中使用該 role
你也可以使用 Ansible -galaxy init 初始化一個新的 galaxy 角色
ansible-galaxy init vivaserver.lamp
初始化後的檔案目錄和上文的 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 目錄結構如下
├── playbooks │ ├── configuration.yml │ ├── kubernetes.yml │ ├── network.yml ├── requirements.yml ├── roles └── tasks ├── aws_get_resources.yml
首先,在 requirements.yml 裡定義:
- name: terraform src: https://github.com/solutionDrive/ansible-role-terraform/archive/v1.2.0.tar.gz - name: helm src: git@github.com:<github>/ansible-role-helm.git scm: git version: 1.0.5
並在 ansible.cfg 中指定 roles 安裝路徑
roles_path = ansible/roles
使用如下命令安裝 roles 模組到指定的路徑
$ ansible-galaxy install -r requirements.yml
安裝後,Ansible 目錄結構大概如下
├── playbooks │ ├── configuration.yml │ ├── kubernetes.yml │ ├── network.yml ├── requirements.yml ├── roles │ ├── helm │ └── terraform └── tasks ├── aws_get_resources.yml
接著,在某個 playbook.yml 可以這麼參照 Role,來使用 helm deploy K8S 資源
tasks: - name: init Helm import_role: name: helm
最後,使用ansible-playbook
來部署資源
ansible-playbook ansible/playbooks/kubernetes.yml
本文介紹了 Ansible Galaxy 命令的使用,並詳談了在實際工作中你可以如何應用 Galaxy 建立的 role 到你的專案中。使用 Ansible Galaxy 來創造 Role 是一種極好的想法,也是一種理想的方式來組織和管理你不斷增長的 playbook。通過簡單、強大、無代理、快速有效地擴充套件基礎設施的自動化解決方案,讓自己成為更高階的運維人員,更多關於Ansible Galaxy命令的資料請關注it145.com其它相關文章!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45