Ansible playbook работает только с пользователем root и не работает при работе с другим пользователем sudo
У меня была рабочая книга воспроизведения в моей тестовой среде, где мой пользователь был пользователем root, и у меня не было никаких проблем. Когда я переместил мою playbook в промежуточную среду, там моя учетная запись пользователя "admin" - это sudo user. Но все мои пьесы терпят неудачу в этой среде.
---
- name: Replace the silent-install-server_ file to each Application Servers
hosts: localhost,CCM,RM
vars:
jts_file: /etc/ansible/roles/IBM2/files/silent-install-server_JTS.xml
ccm_file: /etc/ansible/roles/IBM2/files/silent-install-server_CCM.xml
rm_file: /etc/ansible/roles/IBM2/files/silent-install-server_RM.xml
dest_dir: /opt/CLM-Web-Installer-Linux-6.0.5/im/linux.gtk.x86_64
tasks:
- name: check the folder existance
stat: path=/opt/CLM-Web-Installer-Linux-6.0.5/im/linux.gtk.x86_64
register: folder_exist
- name: JTS Server
copy:
src: "{{ jts_file }}"
dest: "{{ dest_dir }}/"
mode: 777
backup: yes
delegate_to: localhost
when: folder_exist.stat.exists == True
- name: CCM Server
copy:
src: "{{ ccm_file }}"
dest: "{{ dest_dir }}/"
mode: 777
backup: yes
delegate_to: 10.16.24.102`enter code here`
when: folder_exist.stat.exists == True
- name: RM Server
copy:
src: "{{ rm_file }}"
dest: "{{ dest_dir }}/"
mode: 777
backup: yes
delegate_to: 10.16.24.103
when: folder_exist.stat.exists == True
получить ниже ошибки.
PLAY [Replace the silent-install-server_ file to each Application Servers] **********************************************************************************
TASK [Gathering Facts] **************************************************************************************************************************************
ok: [localhost]
fatal: [10.16.24.102]: FAILED! => {"msg": "Timeout (12s) waiting for privilege escalation prompt: "}
fatal: [10.165.240.103]: FAILED! => {"msg": "Timeout (12s) waiting for privilege escalation prompt: "}
TASK [check the folder existance] ***************************************************************************************************************************
ok: [localhost]
TASK [JTS Server] *******************************************************************************************************************************************
ok: [localhost -> localhost]
TASK [CCM Server] *******************************************************************************************************************************************
fatal: [localhost]: FAILED! => {"msg": "Failed to get information on remote file (/opt/CLM-Web-Installer-Linux-6.0.5/im/linux.gtk.x86_64/silent-install-server_CCM.xml): Shared connection to 10.16.24.102 closed.\r\n"}
to retry, use: --limit @/etc/ansible/roles/IBM2/tasks/best/silentiInstallerfile.retry
PLAY RECAP **************************************************************************************************************************************************
10.16.24.102 : ok=0 changed=0 unreachable=0 failed=1
10.16.24.103 : ok=0 changed=0 unreachable=0 failed=1
localhost : ok=3 changed=0 unreachable=0 failed=1
мой хост-файл как показано ниже
[IHS]
10.16.24.100
[JTS]
10.16.24.101
[CCM]
10.16.24.102
[RM]
10.16.24.103
3 ответа
Убедитесь, что admin@10.16.24.102 и admin@10.165.240.103 могут "sudo su".
фатально: [10.16.24.102]: СБОЙ! => {"msg": "Время ожидания (12 с) ожидания запроса на повышение привилегий: "}
фатально: [10.165.240.103]: СБОЙ! => {"msg": "Время ожидания (12 с) ожидания запроса на повышение привилегий: "}
Я предлагаю сделать для доступа admin@10.16.24.102 и admin@10.165.240.103 sudo без пароля:
Вы можете добавить в файл /etc/sudoers:
admin ALL=(ALL:ALL) NOPASSWD:ALL
Если вы не работаете с правами root, вам нужно сказать ansible, чтобы стать пользователем root
стать: да
Это можно сделать за игру, за хост в инвентаре или за отдельные задачи.