2013-08-22 6 views
3

Я пытаюсь запустить загружаемую книгу и после сбора фактов, Ansible приостанавливает выполнение первой задачи, которая занимает менее секунды и не будет двигаться дальше. Какие вещи я могу проверить? Я пробовал:Ansible Pausing Indefinitely

  • Многословного режим (-vvv) .. но я не вижу много полезной информации
  • , обеспечивающее соединение работы (анзибль всех -m пинг работа)
  • выполнения различных команд (с -t) .. все из них сделать паузу, хотя
  • изменяя команду просто эхо «привет» .. анзибль еще пауза

ответ

0

Узнал я нуждался беспарольную Sudo .. Я изменил/и т.д./sudoers:

%admin ALL=(ALL) NOPASSWD:ALL 
4

Вам не нужно БЕСПЛАТНО sudo, вам просто нужно соответствовать вашим параметрам в вашей среде sudo. Если вам нужно предоставить пароль sudo, вы можете просто добавить -K (--ask-sudo-pass) к вашему вызываемому вызову.

0

попробовать "-k" опции и системы должны иметь sshpass установлен

ansible servers -vvvv -m ping -i inventory -u vagrant -k 

Выход

SSH password: <<USEr PASSWORD>> 

Консоль Вывод многословной

<precise32> ESTABLISH CONNECTION FOR USER: vagrant 
<precise32> REMOTE_MODULE ping 
<precise32> EXEC ['sshpass', '-d6', 'ssh', '-C', '-tt', '-vvv', '-o', 'ControlMaster=auto', '-o', 'ControlPersist=60s', '-o', 'ControlPath=/home/vagrant/.ansible/cp/ansible-ssh-%h-%p-%r', '-o', 'GSSAPIAuthentication=no', '-o', 'PubkeyAuthentication=no', '-o', 'ConnectTimeout=10', 'precise32', "/bin/sh -c 'mkdir -p $HOME/.ansible/tmp/ansible-tmp-1423020915.88-101376543892740 && chmod a+rx $HOME/.ansible/tmp/ansible-tmp-1423020915.88-101376543892740 && echo $HOME/.ansible/tmp/ansible-tmp-1423020915.88-101376543892740'"] 
<precise32> PUT /tmp/tmpNGxttI TO /home/vagrant/.ansible/tmp/ansible-tmp-1423020915.88-101376543892740/ping 
<precise32> EXEC ['sshpass', '-d6', 'ssh', '-C', '-tt', '-vvv', '-o', 'ControlMaster=auto', '-o', 'ControlPersist=60s', '-o', 'ControlPath=/home/vagrant/.ansible/cp/ansible-ssh-%h-%p-%r', '-o', 'GSSAPIAuthentication=no', '-o', 'PubkeyAuthentication=no', '-o', 'ConnectTimeout=10', 'precise32', u"/bin/sh -c 'LANG=en_US.UTF-8 LC_CTYPE=en_US.UTF-8 /usr/bin/python /home/vagrant/.ansible/tmp/ansible-tmp-1423020915.88-101376543892740/ping; rm -rf /home/vagrant/.ansible/tmp/ansible-tmp-1423020915.88-101376543892740/ >/dev/null 2>&1'"] 

окончательный вывод

precise32 | success >> { 
    "changed": false, 
    "ping": "pong" 
} 
0

Ansible, по умолчанию, блокируется в случаях, когда ssh-the-command-line блокирует. Иногда это может укусить вас, если вы нажимаете на большое количество серверов и один из логинов не работает и запрашивает пароль с секретным ключом или что-то глупое. Запуск ваших подобных плейбуков:

ANSIBLE_SSH_ARGS="-o BatchMode=yes" ansible-playbook -i inventory/foo playbook.yml 

должен просто сделать сбой ssh ​​вместо запроса.

0

Ваш сборник пьес висит, как она выполняет какую-то задачу, которую необходимо credentials.You должны указать пользователя внутри сборника пьес, которые должны быть использованы при выполнении пьес он должен выглядеть примерно так

hosts: thinkingmonster 
vars: 
http_port: 80 
max_clients: 200 
remote_user: root 
tasks: 
– name: ensure apache is installed 
    yum: pkg=httpd state=latest 
– name: place configuration file 
    template: src=/etc/httpd/conf/httpd.conf dest=/etc/httpd.conf 
    notify: 
    – restart apache 
    – name: ensure apache is running 
service: name=httpd state=started enabled=yes 
handlers: 
– name: restart apache 
service: name=httpd state=restarted 

Check я использовал удаленный пользователь, как root.But, если вы не указуете это в сборнике пьес, то вы должны пройти те же в командной строке при запуске вашего сборника пьес, как

ansible-playbook <your-playbook-name> -u <user> -k <password> 

и если пользователь Sudo требуется выполнить задача тогда

ansible-playbook <your-playbook-name> -u <user> -k <password> --sudo -K 
0

Мои двоичные центы - это не может быть правильным решением, так как в большинстве случаев узлы защищены паролем sudo. Лучше всего использовать пароль sudo в playbook как переменную и передать значение из файла конфигурации, и этот файл конфигурации можно зашифровать с помощью скрытого хранилища.