#ansible #controller #wago
#ансибль #контроллер #ваго #ansible #wago
Вопрос:
Попытка использовать ansible в сочетании с хост-файлом контроллера wago настроена правильно. Прежде чем приступить к пользовательскому кодированию, я хочу проверить, все ли работает так, как ожидалось. Поэтому я создал небольшой простой тестовый playbook, который просто создает текстовый файл…
1 ---
2 - name: configure wago-controller pfc200
3 hosts: pfc200
4 connection: local
5 become: true
6 become_user: root
7 gather_facts: no
8 vars:
9 ansible_python_interpreter: /usr/bin/python3
10
11 tasks:
12
13 - name: "information"
14 command: touch /tmp/hello.txt
15 register: command_output
16
17 - debug: var=command_output
на контроллере установлен python 3
папка /tmp имеет следующие права доступа
0 drwxrwxrwt 2 root root 160 Aug 30 18:16 tmp
выполнение сценария
sudo ansible-playbook test.yml
приносит следующие результаты
PLAY [configure wago-controller pfc200]
********************************************************************
TASK [information]
*****************************************************************************************
[WARNING]: Consider using the file module with state=touch rather than running 'touch'. If
you need to use command because file is insufficient you can add 'warn: false' to this
command task or set
'command_warnings=False' in ansible.cfg to get rid of this message.
changed: [pfc200]
TASK [debug]
************************************************************************************
ok: [pfc200] => {
"command_output": {
"changed": true,
"cmd": [
"touch",
"/tmp/hello.txt"
],
"delta": "0:00:00.002519",
"end": "2020-08-30 18:12:48.129959",
"failed": false,
"rc": 0,
"start": "2020-08-30 18:12:48.127440",
"stderr": "",
"stderr_lines": [],
"stdout": "",
"stdout_lines": [],
"warnings": [
"Consider using the file module with state=touch rather than running 'touch'. If you need to use command because file is insufficient you can add 'warn: false' to this command task or set 'command_warnings=False' in ansible.cfg to get rid of this message."
]
}
}
PLAY RECAP ******************************************************************
pfc200 : ok=2 changed=1 unreachable=0 failed=0
skipped=0 rescued=0 ignored=0
если я войду в контроллер и проверю наличие файла…файл отсутствует…
Прежде чем это не сработает .. нет смысла углубляться в конфигурацию
Совет…также проверил с помощью команды оболочки … что приводит к тому же эффекту..
Комментарии:
1. Если все, что вы хотите сделать, это создать пустой файл для тестирования, вы можете использовать файловый модуль с
state: touch
опцией.2. я думаю, это не command…it тот факт, что он проходит и не дает мне представления, почему он не работает …. команда touch file была для демонстрации, могу ли я получить доступ к контроллеру и могу ли я выдать команду…
3. Я бы предположил, что у вас есть некоторые настройки, которые сопоставляются
/tmp
для каждого сеанса, а затем очищают его при выходе из системы; поскольку вы работаете от имени root, попробуйте коснуться файла, который находится в более надежном месте, таком как/root
или/etc
или даже/
4. то же дерьмо … извините .. просто подумал, что это имело бы смысл … это сводит меня с ума…
Ответ №1:
Глупый я…
локальное соединение
.. о чем я думал…кроме того, теперь появилась новая ошибка … я предполагаю, что в контроллере отсутствует библиотека zlib .. см. Ниже
1 ---
2 - name: configure wago-controller pfc200
3 hosts: pfc200
4# connection: local
5 become: true
6 become_user: root
7 gather_facts: no
8 vars:
9 ansible_python_interpreter: /usr/bin/python3
10
11 tasks:
12
13 - name: "information"
14 command: touch /tmp/hello.txt
15 register: command_output
16
17 - debug: var=command_output
новая ошибка
TASK [information]
******************************************************************************
An exception occurred during task execution. To see the full traceback, use
-vvv. The error was: zipimport.ZipImportError: can't decompress data; zlib not
available
fatal: [pfc200]: FAILED! => {"changed": false, "module_stderr": "Shared
connection to 192.168.4.112 closed.rn", "module_stdout": "Traceback (most
recent call last):rn File "/root/.ansible/tmp/ansible-
tmp-1598822914.27-13741-65296373053829/AnsiballZ_command.py", line 102, in
<module>rn _ansiballz_main()rn File "/root/.ansible/tmp/ansible-
tmp-1598822914.27-13741-65296373053829/AnsiballZ_command.py", line 94, in
_ansiballz_mainrn invoke_module(zipped_mod, temp_path,
ANSIBALLZ_PARAMS)rn File "/root/.ansible/tmp/ansible-
tmp-1598822914.27-13741-65296373053829/AnsiballZ_command.py", line 37, in
invoke_modulern from ansible.module_utils import basicr
nzipimport.ZipImportError: can't decompress data; zlib not availablern",
"msg": "MODULE FAILUREnSee stdout/stderr for the exact error", "rc": 1}