2014-12-29 9 views
13

tl;dr = Jak użytkownicy systemu OS X zalecają działanie w związku z tym błędem uprawnień?rola ansibli-galaktyka kończy się niepowodzeniem z "nie masz uprawnień do modyfikowania/etc/ansible/roles /"

Jestem na OS X 10.10.1 i ja niedawno zainstalowany ansibl uruchomione następujące:

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

Chcę rozpocząć mecz w roli galaktyk zainstalować homebrew i poszedł do pracy to jedno z następujący błąd:

$ 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. 

Choć widzę /etc jest root, nie widzę żadnych wskazówek zawartych w dokumentacji mówiąc powinienem chmod czegokolwiek.

Dla porównania:

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

Czy to spodziewany lub jest moja instalacja jakoś tak?

Odpowiedz

16

Domyślne położenie ról to /etc/ansible/roles. Musisz podać --roles-path podczas korzystania z ansible-galaxy. Oto co ansible-galaxy install --help mówi:

-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) 

Można również ustawić roles_path w ansible.cfg; see the documentation for details.

+0

Dziękuję za odpowiedź! Znam domyślną ścieżkę i rozumiem, że mogę ją przekierować. Moje pytanie można wyrazić wyraźniej jako * jak ten błąd normalnie naprawia ten na OS X? * Wyobrażam sobie, że definiowanie '--roles-path' na każdym wywołaniu galaktyki lub playbooka byłoby denerwujące. Musi być mądrzejszy sposób. Wszelkie zalecenia? – mbb

+1

Mam niestandardową 'roles_path' w moim pliku'/etc/ansible/ansible.cfg', obecnie ustawione na lokalizację w moim katalogu domowym (np. 'Roles_path = ~/dev/ansible/roles'. (Zobacz ostatnią linię Jeśli podasz 'roles_path' globalnie, nigdy nie będziesz musiał określać jej w linii poleceń: – geerlingguy

+0

Twoje drugie pytanie zostanie odebrane za pomocą' ansible.cfg', podążaj za odnośnikiem, aby ustawić właściwą ścieżkę. – tedder42

2

Jak widziałem, użyłeś "sudo" do zainstalowania Ansible, przypuszczam, że będzie w porządku, aby kontynuować używanie "sudo" do instalacji ansibla-galaktyki. I właśnie to właśnie zrobiłem.

+0

musiałby mieć dostęp do ansibli również dla root'a, który domyślnie nie jest, w rzeczywistości twoja odpowiedź powinna być komentarzem w ogóle. – Wtower

4

Lub możesz użyć brew, aby zainstalować ansible. Aby to zrobić trzeba by uruchomić:

brew install ansible 

Jeśli miał jakieś wcześniejsze instalacje, możliwe jest, że pojawi się komunikat jak poniżej:

Error: The brew link step did not complete successfully The formula built, but is not symlinked into /usr/local Could not symlink bin/ansible Target /usr/local/bin/ansible already exists. You may want to remove it: rm '/usr/local/bin/ansible'

To force the link and overwrite all conflicting files: brew link --overwrite ansible

To list all files that would be deleted: brew link --overwrite --dry-run ansible

Possible conflicting files are: /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

Więc uruchom brew link --overwrite ansible to naprawić. Teraz będziesz mógł instalować dowolne role bez numeru sudo.

Przykład:

» ansible-galaxy install bennojoy.redis
- downloading role 'redis', owned by bennojoy
- downloading role from https://github.com/bennojoy/redis/archive/master.tar.gz
- extracting bennojoy.redis to /usr/local/etc/ansible/roles/bennojoy.redis
- bennojoy.redis was installed successfully

Powiązane problemy