При выполнении плейбука с
1 2 3 4 5 |
- name: Старт сервиса become: true service: name: httpd state: started |
Получаем ошибку: Failed to restart httpd.service: Interactive authentication required
Это происходит из-за того, что у пользака, под которым выполняется команда рестарта, нет прав, неправильный пароль или права выданы на не совсем то действие.
Если с первыми двумя причинами все понятно, то с третьей можно попробовать вот что:
Права выданы в следующем виде:
(root) NOPASSWD: /bin/systemctl * httpd.service
В плейбуке обязательно проверять статус после выполнении кманды типа shell И raw
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
- name: Стопаем апач. Apache stop become: true become_user: "{{ user }}" no_log: true shell: echo '{{ansible_become_pass}}' | sudo -S /bin/systemctl start httpd.service - name: Получение статуса апача. GET Apache status become: true become_user: "{{ user }}" no_log: true shell: echo '{{ansible_become_pass}}' | sudo -S /bin/systemctl status httpd.service register: httpd_service_status - name: Томкат запущен? GET Apache status fail: msg="Найден запущенный Apache. Playbook остановлен. Apache is loaded. Playbook is stoped" when: '"Active: active (running)" in httpd_service_status.stdout' |