tl;dr
= OS X用户如何推荐解决此权限错误?
我在OS X 10.10.1上,我最近安装了Ansible,运行以下内容:
sudo pip install ansible --quiet
sudo pip install ansible --upgrade
我想从一个galaxy角色开始安装自制软件,然后运行这个以下错误:
$ 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
这是预期的还是我的安装错误?
答案 0 :(得分:17)
角色的默认位置为/etc/ansible/roles
(版本< = 2.3。自v2.4起,默认位置已更改为~/.ansible/roles/
,an issue has been raised)。使用--roles-path
时,您需要指定ansible-galaxy
。以下是ansible-galaxy install --help
所说的内容:
-p ROLES_PATH, --roles-path=ROLES_PATH
The path to the directory containing your roles. The
default is the roles_path configured in your
ansible.cfg file (/etc/ansible/roles if not
configured)
您还可以在roles_path
中设置ansible.cfg
; see the documentation for details
答案 1 :(得分:4)
或者您可以使用brew
安装ansible
。要做到这一点,你需要运行:
brew install ansible
如果您之前有任何安装,您可能会看到如下消息:
错误:
brew link
步骤未成功完成公式 已构建,但没有符号链接到/ usr / local无法符号链接 bin / ansible目标/ usr / local / bin / ansible已经存在。你可能想要 删除它:rm'/ usr / local / bin / ansible'强制链接并覆盖所有冲突的文件:brew链接 --overwrite ansible
列出所有要删除的文件:brew link --overwrite --Dry-run ansible
可能存在冲突的文件是:/ usr / local / bin / ansible / usr / local / bin / ansible-console / usr / local / bin / ansible-doc / usr / local / bin / ansible-galaxy / usr / local / bin / ansible-playbook / usr / local / bin / ansible-pull / usr / local / bin / ansible-vault
所以,运行brew link --overwrite ansible
来解决这个问题。现在,您可以在没有sudo
的情况下安装任何角色。
示例:
»ansible-galaxy install bennojoy.redis
- 下载角色'redis',由bennojoy拥有 - 从https://github.com/bennojoy/redis/archive/master.tar.gz下载角色 - 将bennojoy.redis提取到/usr/local/etc/ansible/roles/bennojoy.redis
- bennojoy.redis已成功安装
答案 2 :(得分:2)
正如我所看到您使用“sudo”安装Ansible,我认为继续使用“sudo”进行ansible-galaxy安装是可以的。这就是我刚刚做的事情。