ansible galaxy角色因“失败”;没有修改/etc/ansible/roles/”的权限;

ansible galaxy角色因“失败”;没有修改/etc/ansible/roles/”的权限;,ansible,osx-yosemite,ansible-galaxy,Ansible,Osx Yosemite,Ansible Galaxy,tl;dr=OS X用户建议如何解决此权限错误? 我使用OS X 10.10.1,最近安装了Ansible,运行以下程序: sudo pip install ansible --quiet sudo pip install ansible --upgrade 我想从galaxy角色开始安装homebrew,然后运行此角色时出现以下错误: $ ansible-galaxy install geerlingguy.homebrew - downloading role 'homebrew', ow

tl;dr
=OS X用户建议如何解决此权限错误?

我使用OS X 10.10.1,最近安装了Ansible,运行以下程序:

sudo pip install ansible --quiet
sudo pip install ansible --upgrade
我想从galaxy角色开始安装homebrew,然后运行此角色时出现以下错误:

$ ansible-galaxy install geerlingguy.homebrew
- downloading role 'homebrew', owned by geerlingguy
- downloading role from https://github.com/geerlingguy/ansible-role-homebrew/archive/1.0.1.tar.gz
- extracting geerlingguy.homebrew to /etc/ansible/roles/geerlingguy.homebrew
- error: you do not have permission to modify files in /etc/ansible/roles/geerlingguy.homebrew
- geerlingguy.homebrew was NOT installed successfully.
- you can use --ignore-errors to skip failed roles.
虽然我看到
/etc
归root所有,但我在文档中没有看到任何注释说我应该
chmod
任何东西

供参考:

$ ansible --version
ansible 1.8.2
  configured module search path = None

这是预期的还是我的安装有什么错误

角色的默认位置是
/etc/ansible/roles
(对于版本,正如我看到您使用“sudo”来安装ansible一样,我认为继续使用“sudo”是可以的用于ansible galaxy安装。我刚才就是这么做的。

或者您可以使用
brew
安装
ansible
。要执行此操作,您需要运行:

brew install ansible
如果您以前安装过,可能会看到如下消息:

错误:
brew链接
步骤未成功完成公式 内置,但未符号链接到/usr/local无法符号链接 bin/ansible目标/usr/local/bin/ansible已存在。您可能需要 要删除它:rm'/usr/local/bin/ansible'

强制链接并覆盖所有冲突文件:brew链接 --可改写的

列出要删除的所有文件:brew链接--覆盖 --干法干燥

可能冲突的文件有:/usr/local/bin/ansible /usr/local/bin/ansible控制台/usr/local/bin/ansible单据 /usr/local/bin/ansible galaxy/usr/local/bin/ansible剧本 /usr/local/bin/ansible pull/usr/local/bin/ansible vault

因此,运行
brew link--overwrite ansible
来解决这个问题。现在,您可以在不使用
sudo
的情况下安装任何角色

例如:

»ansible galaxy安装bennojoy.redis
-下载bennojoy拥有的角色“redis”
-从下载角色
-将bennojoy.redis提取到/usr/local/etc/ansible/roles/bennojoy.redis
-bennojoy.redis已成功安装


谢谢你的回答!我熟悉默认路径,并且知道我可以重定向它。我的问题可以说得更清楚,因为OS X上的人通常是如何纠正这个错误的?我想在每个galaxy或playbook调用上定义
--角色路径
会很烦人。一定有更聪明的方法。有什么建议吗?我有我的
/etc/ansible/ansible.cfg
文件中的自定义
roles\u路径
,当前设置在我的主文件夹中的某个位置(例如
roles\u路径=~/dev/ansible/roles
(请参见上面答案中的最后一行)。如果全局指定
角色\u路径
,则不必在命令行中指定它。第二个问题的答案是
ansible.cfg
;请按照链接设置正确的路径。您还需要根用户可以使用ansible,默认情况下不是。事实上,您的答案应该是一条注释。
brew install ansible