LINUX.ORG.RU
ФорумAdmin

ansible playbook не фурычит

 ,


1

2

ansible playbook не фурычит почему-то, тогда как через шелл всё норма

вот работает, это просто установка mc

ansible -m shell -a 'apt-get install mc' test vpn.test2 | SUCCESS | rc=0 >> Reading package lists... Building dependency tree... Reading state information... mc is already the newest version (3:4.8.19-1). 0 upgraded, 0 newly installed, 0 to remove and 12 not upgraded.

а ansible-playbook mc.yml говорит

ansible-playbook mc.yml

PLAY [test] ********************************************************************************************************************************************************************************************************************************

TASK [Gathering Facts] ********************************************************************************************************************************************************************************************************************* An exception occurred during task execution. To see the full traceback, use -vvv. The error was: TimeoutError: Timer expired after 10 seconds fatal: [vpn.test2]: FAILED! => {«changed»: false, «cmd»: «/bin/findmnt --list --noheadings --notruncate», «msg»: «Timer expired after 10 seconds», «rc»: 257} to retry, use: --limit @/root/ansible/mc.retry

PLAY RECAP ********************************************************************************************************************************************************************************************************************************* vpn.test2 : ok=0 changed=0 unreachable=0 failed=1

какой ему таймаут не нравится - непонятно.

cat mc.yml --- - hosts: test tasks: - name: Install package mc apt: pkg=mc

cat /etc/ansible/hosts [test] vpn.test2 ansible_port=222 ansible_ssh_host=127.0.0.1

хост - он сам, ssh на 222 порт, разумеется, ходит, ибо тест выше работает.

версии ансибла разные, 2.5.5 и 2.7.8, так что пофиг на версию, ведёт себя одинаково.


для такой задачи бесполезно собирать факты

gather_facts: no

в модуле apt нет опции pkg

- name: Install package mc
  apt:
    name: mc
    state: present
bass ★★★★★
()
Ответ на: комментарий от bass

Спасибо, ты прав, я уже тоже нашёл, только немного иначе

gather_subset = !all поставил

wadim_
() автор топика
Ответ на: комментарий от bass

no, кстати, ругается

PLAY [test] ********************************************************************************************************************************************************************************************************************************

TASK [Gathering Facts] ********************************************************************************************************************************************************************************************************************* fatal: [vpn.test]: FAILED! => {«changed»: false, «module_stderr»: «Shared connection to 127.0.0.1 closed.\r\n», «module_stdout»: «Traceback (most recent call last):\r\n File \»/tmp/ansible_ysw4tw/ansible_module_setup.py\", line 177, in <module>\r\n main()\r\n File \«/tmp/ansible_ysw4tw/ansible_module_setup.py\», line 169, in main\r\n minimal_gather_subset=minimal_gather_subset)\r\n File \«/tmp/ansible_ysw4tw/ansible_modlib.zip/ansible/module_utils/facts/ansible_collector.py\», line 124, in get_ansible_collector\r\n File \«/tmp/ansible_ysw4tw/ansible_modlib.zip/ansible/module_utils/facts/collector.py\», line 388, in collector_classes_from_gather_subset\r\n File \«/tmp/ansible_ysw4tw/ansible_modlib.zip/ansible/module_utils/facts/collector.py\», line 186, in get_collector_names\r\nTypeError: Bad subset 'no' given to Ansible. gather_subset options allowed: all, all_ipv4_addresses, all_ipv6_addresses, apparmor, architecture, caps, chroot, cmdline, date_time, default_ipv4, default_ipv6, devices, distribution, distribution_major_version, distribution_release, distribution_version, dns, effective_group_ids, effective_user_id, env, facter, fips, hardware, interfaces, is_chroot, kernel, local, lsb, machine, machine_id, mounts, network, ohai, os_family, pkg_mgr, platform, processor, processor_cores, processor_count, python, python_version, real_user_id, selinux, service_mgr, ssh_host_key_dsa_public, ssh_host_key_ecdsa_public, ssh_host_key_ed25519_public, ssh_host_key_rsa_public, ssh_host_pub_keys, ssh_pub_keys, system, system_capabilities, system_capabilities_enforced, user, user_dir, user_gecos, user_gid, user_id, user_shell, user_uid, virtual, virtualization_role, virtualization_type\r\n", «msg»: «MODULE FAILURE», «rc»: 1} to retry, use: --limit @/root/ansible/mc.retry

PLAY RECAP ********************************************************************************************************************************************************************************************************************************* vpn.test : ok=0 changed=0 unreachable=0 failed=1

wadim_
() автор топика

1) Если через ansible ты используешь модуль shell, почему в playbook другой модуль?

2) Странно что нигде нет become. Шеврон с бурундуками за ssh логин от рута?

3) gathering fackts - это модуль setup. Как уже сказали, факты лучше кэшировать

router ★★★★★
()
Ответ на: комментарий от router

ну в общем помогло gather_timeout = 200

а в смысле другой модуль? я просто не особо пока понимаю ансибл

wadim_
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.