Size: a a a

2021 February 23

MB

Max Block in Ansible
Lamobot
Вам правильно советуют - разделить на группы, вместо разделения по переменным.
Если одну большую хочется, то есть подгруппы.
https://docs.ansible.com/ansible/latest/network/getting_started/first_inventory.html#basic-inventory
Да, это правильно. Но я не могу поменять структуру hosts.yml. Этот файл служит источником данных для одного сервиса, и его я изменить не могу. Мир не идеален, реальность именно такая.

Придется тогда написать питонячий скрипт, который будет парсить hosts.yaml, выбирать оттуда все что мне надо, и создавать этот временный файл потипу --limit @retry_hosts.txt
источник

TG

Timur Gadiev in Ansible
Max Block
Да, это правильно. Но я не могу поменять структуру hosts.yml. Этот файл служит источником данных для одного сервиса, и его я изменить не могу. Мир не идеален, реальность именно такая.

Придется тогда написать питонячий скрипт, который будет парсить hosts.yaml, выбирать оттуда все что мне надо, и создавать этот временный файл потипу --limit @retry_hosts.txt
Сделайте плейбук с динамическим инвентарем и с помощью модулей add_host или group_by делайте свою магию с помощью любых переменных, безх всякой дичи с питоном.
источник

TG

Timur Gadiev in Ansible
Не нужно лишних странностей
источник

MB

Max Block in Ansible
Да, add_host или group_by — выглядят как хорошее решение. Благодарю!
источник

TG

Timur Gadiev in Ansible
Max Block
Да, это правильно. Но я не могу поменять структуру hosts.yml. Этот файл служит источником данных для одного сервиса, и его я изменить не могу. Мир не идеален, реальность именно такая.

Придется тогда написать питонячий скрипт, который будет парсить hosts.yaml, выбирать оттуда все что мне надо, и создавать этот временный файл потипу --limit @retry_hosts.txt
Еще вариант - можно сделать дополнительный файл инвентаря с нужными вам группами и цеплять его дополнительно при запуске ключом -i
источник

TG

Timur Gadiev in Ansible
Файл hosts можно не трогать никак
источник

NO

No One in Ansible
Всем привет, у меня трабла небольшая с Ansible, выявил на AWX проверид локально - подтвердилось, может кто сталкивался?

Окружение:
AWX version: 17.0.1
AWX install method: docker on linux
Ansible version(on host VM): ansible 2.9.17
Operating System(on host VM): Centos 7
Web Browser: Mozilla Firefox


Думаю проблема видна из части тасок и части результата.

Таски:

- name: "Download java distr"
get_url:
dest: "/opt/"
url: "{{ jdk_distrib }}"
validate_certs: no
run_once: True
delegate_to: localhost

- name: "Copy to all other hosts"
copy:
src: "/opt/jdk-{{ jdk_release }}-linux-x64.rpm"
dest: "/opt/"

Результат
TASK [ansible-role-java-tmp : Download java distr] *****************************
Tuesday 23 February 2021  01:08:22 +0000 (0:00:05.061)       0:00:33.438 ******
changed: [host1]
TASK [ansible-role-java-tmp : Copy to all other hosts] *************************
Tuesday 23 February 2021  01:08:51 +0000 (0:00:29.247)       0:01:02.685 ******
An exception occurred during task execution. To see the full traceback, use -vvv. The error was: If you are using a module and expect the file to exist on the remote, see the remote_src option
fatal: [host2]: FAILED! => {"changed": false, "msg": "Could not find or access '/opt/jdk-7u21-linux-x64.rpm' on the Ansible Controller.\nIf you are using a module and expect the file to exist on the remote, see the remote_src option"}
An exception occurred during task execution. To see the full traceback, use -vvv. The error was: If you are using a module and expect the file to exist on the remote, see the remote_src option
fatal: [host3]: FAILED! => {"changed": false, "msg": "Could not find or access '/opt/jdk-7u21-linux-x64.rpm' on the Ansible Controller.\nIf you are using a module and expect the file to exist on the remote, see the remote_src option"}
changed: [host5]
changed: [host1]
changed: [host4]
источник

PG

Pavel Gassan in Ansible
вы уверены что файл /opt/jdk-7u21-linux-x64.rpm есть на ансибл контроллере?
источник

NO

No One in Ansible
Pavel Gassan
вы уверены что файл /opt/jdk-7u21-linux-x64.rpm есть на ансибл контроллере?
)))

первую таску взгляните, пожалуйста, и сам факт того что из 5 хостов 3 выполняются, а 2 нет говорит что да, он там есть.
источник

NO

No One in Ansible
В дополнение пробовал с враппером syncronize - тоже самое.
источник

PG

Pavel Gassan in Ansible
всегда валится на хост2?
что говорит -vvv?
то куда копируете у ансибла есть права на записть на том хосте где не отрабатывает?
источник

NO

No One in Ansible
хосты шаблонные и развернуты все в vmware "под копирку"
источник

PG

Pavel Gassan in Ansible
ошибка всегда с одном хостом?
источник

NO

No One in Ansible
Pavel Gassan
всегда валится на хост2?
что говорит -vvv?
то куда копируете у ансибла есть права на записть на том хосте где не отрабатывает?
нет, я четкой зависимости не увидел в хостах которые отваливаютсмя, есть только зависимость в том что все отрабатывает только 3 хоста и 5 и они разные.
источник

L

Lamobot in Ansible
ad-hoc запустите ls -l /opt
источник

NO

No One in Ansible
ls -l /opt                                   
drwxr-xr-x. 1 n0cronix n0cronix        62 Dec 26 12:54 bin
-rw-r--r--. 1 n0cronix n0cronix 112994496 Feb 23 13:42 jdk-8u271-linux-x64.rpm
источник

PG

Pavel Gassan in Ansible
это на контролеере, или на таргете?
источник

NO

No One in Ansible
на локальной машине. получается - контроллер
источник

PG

Pavel Gassan in Ansible
эм, сделайте тоже самое на всех хостах из группы на которую накатываете роль
источник

PG

Pavel Gassan in Ansible
ansible hosts -m command -a "ls -l /opt"
источник