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