Max
если ты хочешь вообще сделать действие 1 раз, и в посл. разы запуска - не делать, тебе нужно и run_once и канарейку (файл, который означает что дело сделано)
Sergei
а проверить запущен ли сервис => кинуть запрос и получить ответ создана ли база не?
Oleksandr
сделать 1 раз не про идемпотентность вроде
Max
Alex
Max
если делать все кашерно уровня "глат кошер".
simplemice.eth
;)
Timur
Timur
Артём
Сделать один раз на неинициализированный инстанс - идемпотентно. Будут новые инстансы - надо будет повторить.
Файл-канарейка - башсибл, но идемпотентно.
Собирать стейт у приложения, инициализирована ли его бд, и таск инициализации делать по when - пока выглядит как самое подходящее по духу, но слегка громоздкое.
«Нужно просто писать идемпотентный код сценария» - спасибо за это важное замечание.
nett00n
Артём
Краевые случаи, когда каталось но не докатилось, приводят как раз к необходимости либо создавать канарейку именно после инициализации бд.
Артём
Либо полноценно запрашивать у приложения, инициализирована ли бд.
Fidelina
Вопрос) когда 100500 серверов, то как на них найти, где установлен ансибл?)
Mikhail
А почему он установлен где-то, а не на твоём ноуте?
Yuf
Или хотя бы на контрол ноде какойто
Fidelina
потому, что это закрытый контур и ты туда подключаешся через 3 rdp винды
Fidelina
ну не я устанавливала) я бы запомнила где))
Fidelina
а сейчас есть подозрение что он перетирает и откатывает конфиг один очень важный
Fidelina
как его найти а потом проверить он ли это)
Kirill
Kirill
Timur
Max
Timur
К ансиблу само по себе это никак не относится
Max
впечатление, если основано на фактах, опирается на какую то информацию.
как узнали что конфига обнулилась?
Timur
Fidelina
Anonymous
логируйте сетевые подключения, потом посмотрите кто был на сервере во время изменения файла
Ждун
Nikita
народ есть приватный ключ на машину по ssh хожу так: ssh -i /.ssh/key root@192.168.1.1
Nikita
через ансибл болт
Nikita
как победить ???
Артём
Как побеждать?
Sergey
Nikita
да как хотяб пингануть
Kirill
"Наука побеждать"
Sergey
Nikita
Permission denied (publickey,password,keyboard-interactive).\r
Egor
как победить ???
Дык первая же ссылка в гугле.
"ansible_ssh_private_key_file"
Nikita
WARNING]: * Failed to parse /etc/ansible/hosts with ini plugin: /etc/ansible/hosts:24: Expected key=value host variable assignment, got: /
Nikita
\ - писал в старой книге было
Nikita
Nikita
/bin/sh: /usr/bin/python: not found\r\n"
Nikita
без питона там делать нечего?
Sergey
Nikita
да очевидно,
command и shell не будут работаьб?
Nikita
Nikita
от души. у меня просто книга старая там в инвентори через '/'
Vladislav 👻
только учтите, что у меня это специфичный случий, поэтому, если у вас постоянно отдельный ключ используется для подключения, то лучше оформить по бест практис в group/host_vars
Александр
хм
Александр
господа, у меня вопрос не по ансиблу слегка
Александр
(то есть вообще)
Александр
но мало ли
Александр
ктонить знает, как в kickstart сделать обработку ошибок?
Sergey
Александр
Alexandr
Привет. Кто может подсказать как в ансибле можно организовать вложенные группы и как правильно разложить group_vars? У меня есть необходимость структуры подобного рода: [web-east]: host1. [west-west]: host2. east: [all-web: children] web-east, web-west. [east]: host1, host3.
[Timansky]Timur Kumakbayev
[parent_group:children]
child_group1
child_group2
child_group3
[child_group1]
host1
[child_group2]
host2
если в ini
Alexandr
Получается такое, что 1 хост, может быть в разных группах, типа географическое расположение и его роль. Как мне видется может быть такое, что вложенность групп 1 хоста может быть больше 2. Я думал, что можно сочинить такое: group_vars/top1_parent/top2_parent/child.yml
[Timansky]Timur Kumakbayev
group_vars вложенными не будут
Alexandr
но так похоже не работает. Я правильно понимаю, что в group_vars не может быть вложенных папок? и вся группировка должна быть на одном уровне?
[Timansky]Timur Kumakbayev
вложеность групп может быть больше 2 но group_vars берутся от той группы к которой ты обращаешься
[Timansky]Timur Kumakbayev
Alexandr
Жаль, получается мешанина на уровне структуры файлов
Alexandr
Как описать для hosts - я понимаю, мне не хочется что была простынка всех групп (при чем разных групп, не отражая зависимость\вложенность) на уровне структуры файлов
Alexandr
так хрен разберешь, кто дочерний
[Timansky]Timur Kumakbayev
можешь пройтись руками (таском через merge) по файлам и собрать все что тебе нужно
[Timansky]Timur Kumakbayev
или заюзать динамический инвентарь, там тебе твойже скрипт это все собирет
Vladislav 👻
А еще есть команда ansible-inventory
Oleg
а разве так нельзя? :
- include_role: name=ansistrano
{% if project_repository == "telephony" %}
- include_role: name=symfony4/make-vars-build
- include_role: name=symfony4/git-repository
- include_role: name=symfony4/composer-install
- include_role: name=symfony4/cache-warmup
{% endif %}
Oleg
ERROR! Syntax Error while loading YAML.
found character that cannot start any token
The error appears to have been in '/home/centos/ansible-deploy/recipes/symfony4/build.yaml': line 3, column 2, but may
be elsewhere in the file depending on the exact syntax problem.
The offending line appears to be:
- include_role: name=ansistrano
{% if project_repository == "telephony" %}
^ here
[Timansky]Timur Kumakbayev
Интересно конечно впихнуть невпихуемое
[Timansky]Timur Kumakbayev
Есть же when:
Alexandr
Не, if-ать моветон. Потом семиэтажные ифы родятся в конце. Кажется я придумал как это можно организовать. Хранить придется на 1ом уровне, а вот запускать можно по плейбучно на каждую группу.