RHCE-B5. 使用Ansible Galaxy 安装角色
Posted 白-胖-子
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RHCE-B5. 使用Ansible Galaxy 安装角色相关的知识,希望对你有一定的参考价值。
红帽RHCE考试下午-RHCE(RH294)
RH294任务概览
- 考试时间4个小时,6台虚拟机,15道题
- 原来通过脚本或者集群做的题现在都需要使用playbook实现
- 考试时大概有6台虚拟服务器,都已经做好了互相的免密
- 做题在ansible控制节点workstation做,但是需要去其他虚拟服务器进行验证
- 考试时需要将6台虚拟服务器在考试环境全部开启,物理机界面点击左侧按钮启动
- 考试时Ansible所有playbook都放在普通用户目录中且都以普通用户执行
- 注意:考试时一定注意要求将playbook放在指定用户的家目录中,用指定的用户登录做题!
- 注意:考试的判分方式通过普通用户远程执行指定目录下的playbook或者脚本,如果使用root做题,则没有权限就是零分
5. 使用Ansible Galaxy 安装角色
- 使用 Ansible Galaxy 和要求文件 /home/student/ansible/roles/requirements.yml,
- 从以下 URL 下载角色并安装到 /home/student/ansible/roles:
任务要求
- 从链接下载角色并安装角色
http://172.25.250.250/ansible2.8/haproxy.tar.gz 此角色的名称应当为 balancer
http://172.25.250.250/ansible2.8/phpinfo.tar.gz 此角色的名称应当为 phpinfo
注意:
准备个工作
- 考试期间不需要做
完成步骤
- 可以先wget一下看看远程主机上面的包是不是能下载
- 在角色目录中编写角色请求的yml文件,将远程角色地址写进去就行了
[student@workstationansible]$ vim roles/requirements.yml
---
- name: balancer
src: http://172.25.250.250/ansible2.8/haproxy.tar.gz
- name: phpinfo
src: http://172.25.250.250/ansible2.8/files/phpinfo.tar.gz
[student@workstation ansible]$ ansible-galaxy install -r roles/requirements.yml -p roles/
-
ansible-galaxy这个命令是用来管理角色的
ansible-galaxy install -r <写好的playbook.yml> -p <指定安装到得目录>
-
验证结果,看看新装的角色在不在目录中生成了
[student@workstation ansible]$ ls roles/
apache http requirements.yml
balancer phpinfo timesync
考察的知识点
Ansible galaxy
- Galaxy是查找和共享Ansible内容的hub。
- 使用Galaxy以Ansible社区的丰富内容启动您的自动化项目。
- Galaxy提供了预先打包的工作单元,Ansible称之为角色,Galaxy 3.2中新增了集合。
- 可以将角色放入Ansible剧本中,并立即投入工作。您将找到调配基础架构、部署应用程序以及您每天执行的所有任务的角色。新的集合格式提供了一个全面的自动化包,其中可能包括多个剧本、角色、模块和插件。
- 使用Galaxy的搜索页面查找项目的角色和集合,然后按照说明将它们下载到Ansible主机上。
- 通过共享您创建的精彩内容来帮助其他Ansible用户。也许您的角色是安装和配置一个流行的软件包,或者一个包含一套自动化的集合,用于管理您公司的硬件和服务。不管它是什么,使用Galaxy与社区共享它。
说人话版:
Ansible galaxy类似于GitHub,ansible-galaxy 类似于git命令,
可以将hub上的角色或者模块、插件之类的下载部署到本地。
使用ansible-galaxy从文件安装多个角色
-
可以通过在requirements.yml文件中列出多个角色来安装它们。
-
文件格式为YAML,文件扩展名必须为.yml或.yaml。
-
使用以下命令安装requirements.yml中包含的角色:
$ ansible-galaxy install -r requirements.yml
-
文件中的每个角色将具有以下一个或多个属性:
src
角色的源和必需的属性。
使用namespace.role\\u name格式指定Galaxy中的角色,或在基于git的SCM中提供指向存储库的URL。
scm
如果src是URL,请指定SCM。只支持git或hg。
默认为git。
version:
要下载的角色的版本。提供标记值、提交哈希或分支名称。
默认为master。
name:
将角色下载到特定名称。当从Galaxy下载时,默认为Galaxy名称;
当src是URL时,默认为存储库的名称。
- 以下示例提供了在requirements.yml文件中列出角色的指南:
# from galaxy
- src: yatesr.timezone
# from GitHub
- src: https://github.com/bennojoy/nginx
# from GitHub, overriding the name and specifying a specific tag
- src: https://github.com/bennojoy/nginx
version: master
name: nginx_role
# from a webserver, where the role is packaged in a tar.gz
- src: https://some.webserver.example.com/files/master.tar.gz
name: http-role
# from Bitbucket
- src: git+http://bitbucket.org/willthames/git-ansible-galaxy
version: v1.4
# from Bitbucket, alternative syntax and caveats
- src: http://bitbucket.org/willthames/hg-ansible-galaxy
scm: hg
# from GitLab or other git-based scm
- src: git@gitlab.company.com:mygroup/ansible-base.git
scm: git
version: "0.1" # quoted, so YAML doesn't parse this as a floating-point value
- 使用include指令,可以将其他YAML文件包含到单个requirements.yml文件中。
- 对于大型项目,这提供了将大型文件拆分为多个较小文件的能力。
- 例如,一个项目可能有一个requirements.yml文件和一个webserver.yml文件。以下显示requirements.yml文件的内容
# from galaxy
- src: yatesr.timezone
- include: <path_to_requirements>/webserver.yml
以下是webserver.yml文件的内容:
# from github
- src: https://github.com/bennojoy/nginx
# from Bitbucket
- src: git+http://bitbucket.org/willthames/git-ansible-galaxy
version: v1.4
- 要安装这两个文件中的所有角色,请在命令行上传递根文件,在本例中为requirements.yml,如下所示:
$ ansible-galaxy install -r requirements.yml
以上是关于RHCE-B5. 使用Ansible Galaxy 安装角色的主要内容,如果未能解决你的问题,请参考以下文章
RHCE-B13. 创建Ansible密码库,使用文件内密码加密yml