我可以使用Ansible pull从Galaxy安装(或删除)Ansible角色吗?

我可以使用Ansible pull从Galaxy安装(或删除)Ansible角色吗?,ansible,Ansible,我正在使用Ansible pull(在cron上运行)使用Ansible 我是否可以从Ansible Galaxy安装Ansible角色而不登录到所有计算机(只需在我的Ansible playbook中添加一个命令)?如果我理解正确,您正在尝试从命令行以免提方式从Ansible Galaxy下载和安装角色,可能会重复(通过cron)。如果是这样的话,你可以这样做 #下载角色 ansible galaxy安装--忽略错误f500.elasticsearch groover.packerio #运行

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


我是否可以从Ansible Galaxy安装Ansible角色而不登录到所有计算机(只需在我的Ansible playbook中添加一个命令)?

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

#下载角色
ansible galaxy安装--忽略错误f500.elasticsearch groover.packerio
#运行ansible playbook以安装从ansible Galaxy下载的角色
ansible playbook-i localhost,-c local是的,你可以

# install Ansible Galaxy requirements via the pull playbook itself
- hosts: localhost
  tasks:
    - command: ansible-galaxy install -r requirements.yml

我通常将galaxy中的角色作为子模块添加到自己的存储库中;这样,我就可以控制何时更新它们,ansible pull将自动获取它们—无需运行ansible galaxy

例如:


我在电脑上使用ansible pull来管理它们。我想知道是否有可能以同样的方式安装新角色是的,您可以通过使用
Ansible Galaxy
命令从Ansible Galaxy拉取角色,然后运行
Ansible playbook
来安装角色,如上所述。你试过这些步骤吗?我在Debian Wheezy上对此进行了测试,但它在其他平台上也可以正常工作。我需要在剧本中描述“ansible galaxy安装”。要从ansible galaxy下载角色,请使用
ansible galaxy
命令。如果需要,您甚至可以在剧本中使用。要执行从Ansible Galaxy下载的角色,只需将
{role:galaxyusername:galaxyrolename}
包含在您的剧本中即可。很高兴能为您提供帮助!不幸的是,这有一个鸡和蛋的问题。如果Ansible找不到剧本中提到的角色,它将不会运行。ansible pull将始终运行local.yml剧本。因此,如果不分别克隆和调用ansible galaxy,就无法启动该过程。
mkdir roles
git submodule add https://github.com/groover/ansible-role-packerio roles/groover.packerio