13

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

我在 OS X 10.10.1 上,我最近安装了运行以下内容的 Ansible:

sudo pip install ansible --quiet
sudo pip install ansible --upgrade

我想从一个星系角色开始安装自制软件,然后运行这个,但出现以下错误:

$ 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

这是预期的还是我的安装有问题?

4

3 回答 3

17

角色的默认位置是/etc/ansible/roles(对于版本 <= 2.3。从 v2.4 开始,默认位置已更改为~/.ansible/roles/已引发问题)。--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_pathansible.cfg; 有关详细信息,请参阅文档

于 2014-12-29T00:57:00.547 回答
4

或者您可以brew使用ansible. 为此,您需要运行:

brew install ansible

如果您之前有任何安装,您可能会看到如下消息:

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

强制链接并覆盖所有冲突文件: brew link --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 安装成功

于 2017-02-24T20:46:07.057 回答
2

正如我看到你使用“sudo”安装 Ansible,我想继续使用“sudo”安装 ansible-galaxy 应该没问题。这就是我刚刚所做的。

于 2015-06-10T07:58:28.380 回答