Max
А если other_server не один?
опять вопрос: почему вы решили что вам нужно подсматривать в переменные других хостов?
Dr_Rob0tnik
опять вопрос: почему вы решили что вам нужно подсматривать в переменные других хостов?
Verify the MAC address are unique for every node Предлагаете руками ходить и проверять?
Alex
> А если other_server не один? не очень представляю зачем такое может понадобится, но тогда попробовать when: current_host_ip in list_of_ips или банальный with_items/loops when: current_host_ip == hostvars[item].ansible_default_ipv4.address with_items: - server1 - server2
Max
Verify the MAC address are unique for every node Предлагаете руками ходить и проверять?
во-первых, вместо того, чтобы представить что я хочу вам зла, преставьте, что я хочу вам добра. хорошо?
Max
это уже изменит тон этой беседы.
Max
есть сборка фактов, как часть модуля setup.
Max
в числе этих фактов мак адреса.
Max
можно их собрать все в список.
Max
дубликаты будут там
Max
потом этот список можно профильтровать через unique
Max
и сравнить если списки равны по длинне.
Max
@Dr_Rob0tnik 👆
Dr_Rob0tnik
@naughtius_max Благодарю 👍
Timur
Verify the MAC address are unique for every node Предлагаете руками ходить и проверять?
Общая задача как звучит? Что именно вы делаете и что хотите получить?
Timur
А то выглядит как очередное YAML-программирование
Dr_Rob0tnik
Max
собираю плейбук для разворачивания kubernetes
вы пытаетесь валидировать недоработки раздачи мак адресов на неправильном логическом уровне.
George
как preflight check - почему нет-то?
George
мне вот интересно, а дублирующиеся маки в разных ДЦ - это прям такая проблема, что все?
Max
как preflight check - почему нет-то?
если работаешь на сайте клиента - и клиент отвечает за это, то простительно.
Max
в другом случае надо использовать какой-нить брокер мак адресов, и не заморачиваться.
Dok
Привет! Скажите, почему цикл в конфиге выводит по одной букве? ansible.hosts sites=api conf.j2 {% for site in sites %} if failed unixsocket /tmp/php7.1-{{site}}.sck for 2 cycles then restart {% endfor %} OUTPUT if failed unixsocket /tmp/php7.1-a.sck for 2 cycles then restart if failed unixsocket /tmp/php7.1-p.sck for 2 cycles then restart if failed unixsocket /tmp/php7.1-i.sck for 2 cycles then restart
George
потому что это строчка
George
строчка - тоже итерируемый объект (посимвольно)
George
sites=['api']
George
так лучше
George
😭🤦‍♂️
Andor
sites=api == sites=['a', 'p', 'i']
Dok
Благодарю
Anonymous
@k_i_r_y будет жить. Поприветствуем!
Sergey
давно?
Всегда 😊 Если им пытаются пользоваться как языком программирования - это его таковым не делает.
Alex
но при этом он тьюринг полный :D
Alex
так что не все так просто
Alex
https://stackoverflow.com/questions/40127586/is-ansible-turing-complete
Timur
block with where statement allows branching. Even within loops.
Timur
Во-первых, нет никаких 'where' statement. Видимо, имелось в виду when
Timur
Во-вторых, block не работает с loop
Sergey
Во-вторых, block не работает с loop
Это ж ещё надо знать 😃))))))
Timur
playbook-related plugins are counted as a valid way to extend playbook, therefore they provide full python features. Это вообще непонятно о чем. Видимо, про модули и плагины
Sergey
А rainerscript?
offtopic 😉
Timur
На принципиальном уровне я согласен, что при желании на ансибле можно реализовать почти любую императивную логику. С помощью conditionals, loops и include_* можно практически любой алгоритм накодить. Другое дело - сколько усилий и ломания мозга это потребует по сравнению с нормальными императивными языками
Anonymous
@orphan будет жить. Поприветствуем!
manefesto
Привет Бился тут с проблемой что не работает деплой через ansistrano Переписал плейбук и снова не работает В логах увидел следующее fatal: UNREACHABLE! => {"changed": false, "msg": "argument must be an int, or have a fileno() method.", "unreachable": true} когда то с таким сталкивался, но хоть убей не помню в чем была проблема
Alex
а с -vvvvv пробовал запускать?
Alex
а на каком конкретно таске выдает эту ошибку?
Alex
та иногда берешь плейбуку от "синьйора" devops, а там 80% bash портянок, вот и пойди разберись в них. Удовольствие еще то :)
manefesto
inqfen
господа, памагити
inqfen
что-то то ли уже ночью не соображаб, то ли глаз замылился
inqfen
написал модуль, запускаю
inqfen
получаю вывод TASK [test module] ******************************************************************************************************************************************************************* fatal: [127.0.0.1]: FAILED! => {"changed": false, "module_stderr": "", "module_stdout": "{'domain_name': 'example.com', 'branch_name': 'release-v1.1.1'}\n\n{\"invocation\": {\"module_args\": {\"branch_name\": \"release-v1.1.1\", \"domain_name\": \"example.com\"}}, \"changed\": true, \"full_name\": \"v1-1-1\", \"short_name\": \"v1-1-1\"}\n", "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error", "rc": 0}
inqfen
почему failed, если весь модуль отрабытывает, stderr пусто, rc 0
George
ну, может криво написал. Покажи код. Сделай более вербозный вывод
inqfen
Вот эти full name и short name показывают, что все ок
inqfen
И перед module exit добавлял print, все ок, он отрабатывает
inqfen
Да и exit code 0
Anatoly
Всем добрый день! Подскажите пример скрипта создания динамического json инвентори файла.
Max
Всем добрый день! Подскажите пример скрипта создания динамического json инвентори файла.
это оксиморон. скрипт динамического инвентаря обычно не создает файл.
Max
примеры висят в гитхабе.
Max
можно посмотреть на ec2.py и его конфиг - ec2.ini
Max
(вероятно, может уже есть такой скрипт)
Anatoly
Спасибо, посмотрю. Скрипт на питон, gcp.
Max
есть такой.
Max
чем не подходит вам?
Anatoly
О супер, где посмотреть?
Max
загуглить на колдовскую фразу "ansible gcp dynamic inventory"
Anatoly
🙂