首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我可以安装(或删除)从银河使用Ansible -拉的角色吗?

我可以安装(或删除)从银河使用Ansible -拉的角色吗?
EN

Stack Overflow用户
提问于 2014-08-14 07:43:14
回答 3查看 4.6K关注 0票数 2

我正在使用Ansible使用ansible-pull (运行在cron上)。

我可以在不登录到所有计算机的情况下从Ansible Galaxy安装Ansible角色(只需向我的Ansible剧本添加一个命令)吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-08-30 18:54:07

如果我正确地理解了您,您将尝试从命令行下载和安装Ansible Galaxy中的角色,这种方式可能是重复的(通过cron)。如果是这样的话,你可以这样做。

代码语言:javascript
复制
# download the roles
ansible-galaxy install --ignore-errors f500.elasticsearch groover.packerio
# run ansible-playbook to install the roles downloaded from Ansible Galaxy
ansible-playbook -i localhost, -c local <(echo -e '- hosts: localhost\n  roles:\n  - { role: f500.elasticsearch, elasticsearch_cluster_name: "my elasticsearch cluster" }\n  - { role: groover.packerio, packerio_version: 0.6.1 }\n')

解释/ FYI

  • 要从Ansible Galaxy下载角色,请使用ansible-galaxy,而不是ansible-pull。有关详细信息,请参阅手册。您可以同时下载多个角色。
  • 如果之前已经下载了该角色,那么多次尝试使用ansible-galaxy install下载将导致错误。如果您希望重复调用此命令(例如,从cron),请使用--ignore-errors (跳过角色并转移到下一项)或--force (强制覆盖)来解决此问题。
  • 在运行ansible-playbook时,我们可以避免使用-i localhost,创建库存文件(末尾的逗号表示我们提供的是列表,而不是文件)。
  • -c local (与--connection=local一样)意味着我们不会远程连接,而是在本地主机上执行命令。
  • <()功能是进程替换。命令的输出显示为文件,因此我们可以将“虚拟剧本文件”输入ansible-playbook命令,而无需首先将剧本保存到磁盘(例如,playbookname.yml)。
  • 如图所示,可以嵌入角色变量(如packerio_version: 0.6.1 ),并在单个命令中应用多个角色。
  • 注意,空格在剧本中是重要的(它们是YAML文件)。就像在Python代码中一样,要小心缩进。使用echo -e\n (新行)很容易在长行中排字。
  • 您可以分别从Ansible Galaxy和ansible-playbook运行角色更新。

有了一点魔力,你就不必创建库存文件或剧本了(这有时会很有用)。通过push远程安装Galaxy角色的解决方案不那么麻烦/更干净,但是如果您更喜欢使用cron和拉出,那么这会有所帮助。

票数 4
EN

Stack Overflow用户

发布于 2019-04-14 21:46:35

我通常在自己的存储库中添加来自星系的角色作为子模块;这样,我就可以控制更新它们的时间,而ansible-pull将自动获取它们--从而消除了运行ansible-galaxy的需要。

例如:

代码语言:javascript
复制
mkdir roles
git submodule add https://github.com/groover/ansible-role-packerio roles/groover.packerio
票数 0
EN

Stack Overflow用户

发布于 2016-04-29 13:12:37

是的你可以。

代码语言:javascript
复制
# install Ansible Galaxy requirements via the pull playbook itself
- hosts: localhost
  tasks:
    - command: ansible-galaxy install -r requirements.yml
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25302588

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档