Alex
а в чем проблема поставить клиента?
Sergei
ды чет не прикольно, образ с ансиблом, пихать туда все подряд ниахота
Andor
python3-mysql есть?
Sergei
есть
Denis
а что именно вытащить надо?
Все. есть скрипт которому нужно будет передать env: qa или staging, а далее взять оттуда список серверов
Denis
и так же передать скрпту в цикле
PsyDebug
Sergei
ды это для локальной разработки, костылю что то типа бутстрапа , который подымает мускули , редисы и прочие, и шарит между проектами
Aleksandr
Timur
Timur
Sergei
ну смысле нет ни волюмов, ни ссх, ни питона. Есть только 3306 порт %)
Timur
С локалхоста можете попробовать
Denis
Подскажите, пожалуйста, как правильно получить такую конструкцию
msg: "{{ item.servers.{{ target_env}} }}"
Есть list, в него вложены dict, перебираю этот список loop-м, и хочу получить определеное значение по ключу, которое берется из переменной
inqfen
народ, памагити
- name: get disks ids
set_fact:
ebs_ids: |
{%- set ebs_id_mounts = dict()-%}
{%- for device, dir in mounts.items() -%}
{%- for dev_map in inventory_hostname["block_device_mappings"] -%}
{%- if device == dev_map["device_name"] -%}
{%- set device_id = "{{ dev_map['volume_id'] | replace ('-', '')}}"-%}
"{{ ebs_id_mounts | combine(device_id: dir) }}"
{%- endif -%}
{%- endfor -%}
{%- endfor -%}
{{ ebs_id_mounts }}
100% где-то тупая ошибка, но я ее в упор не вижу, глаз видимо замылился
inqfen
inqfen
с loop
inqfen
А, ошибка у меня template error while templating string: expected token ',', got ':'.
Антон
Sergey
inqfen
Да, это чтобы не добавлялись пробелы
Антон
то есть такой темплейт будет в одну строчку без пробелов?
Sun
Парни, вопрос:
Есть группа пользователей, которой разрешён доступ на сервер с разными правами. Они выкатываются, всё ок.
А можно анзиблей сделать так, чтобы других пользователей на сервере не было?
Sun
Т.е., условно, надо похерить всех, кроме системных и тех, кому можно заходить.
inqfen
Sun
можно
а ударь меня в лицо примером?
Sun
я чот туплю составить запрос
inqfen
Пример надо с гитлаба, который сейчас недоступен забирать, но в целом - получаешь в список всех юзеров с машины, удаляешь из него тех, которые должны быть через фильтр difference
inqfen
и тех, кто получился - удаляешь через loop
inqfen
Только всяких системных не погрохай
inqfen
типа www-data, root и прочее вот это все
Denis
Задача перевести код который есть на питоне в ансибл
Антон
это тестовое задание на собесе?
Denis
нет, это попытки написать костыль
Denis
очень странная задача, знаю. Но надо
Антон
а почему просто не запускать ансиблом питоновский скрипт?
inqfen
Так, со своей задачей разобрался, забыл в combine усы поставить
Denis
Есть задача зарегистрировать сервис в консуле при помощи HTTP API. Написал скрипт. Его будет дергать ансибл. Теперь задача расписать параметры для регистарции сервисов в ansible
Алексей
Всем привет. Скажите, пожалуйста, нужно ли ставить сам пакет ansible через штатный пакетный менеджер на целевой хост? Как я понимаю, нужно ставить только питоновские модули, но сам ansible там не нужен...
Denis
У меня получается 2 вложенных цикла, я их и хочу реализовать
Denis
Denis
На целевой машине, нужен только Python
Антон
у тебя первый цикл заменяется группой в hosts
Антон
Антон
или он будет запускаться на каждом хосте из списка?
Denis
нет. Задача этого плейбку просто зарегать сервис. То есть отправить в консул параметры и все
Denis
мне нужно решить только вопрос с 2 вложеностью
Denis
и я слабо понимаю как это сделать
Антон
можно через include и там уже написать второй шаг с циклом
Антон
я буквально вчера с этим воевал, но в итоге мне удалось обойтись через when + loop
Denis
Если не сложно, мне пример показать?
Антон
основной смысл в том, что я в when делаю выборку когда должно сработать действие
Denis
спасибо, пошел пробовать
Sergei
С локалхоста можете попробовать
чет не fatal: [localhost]: FAILED! => {"changed": false, "msg": "target /bootstrap/files/dump.sql does not exist on the host
Pit
подскажите люди добрыи. Запуск:
find playbooks/ -maxdepth 1 -name '*.yml' ! -name '.*' ! -name 'requirements.yml' ! -path './venv/*' | xargs ansible-playbook --syntax-check
валится на попытке расшифровать vault в одной из ролей. Подсовывать ему пароль от волта не хочу. Как скипнуть расшифровку волта?
Артём
Скипнув выполнение роли?
Timur
Timur
Timur
inqfen
Timur
?
Не надо джинджу засовывать в таски
inqfen
Проблема в том, что результат уникальный на каждом хосте и нужно юзать hostvars[inventory_hostname]
Timur
inqfen
Так-то мне это и самому не нравится
Timur
Дайте исходные данные и скажите, что вы хотите получить на выходе
inqfen
есть переменные хоста, у каждого хоста есть переменная hostvars[inventory_hostname]['block_device_mappings']
inqfen
вот такого вида
[{'device_name': 'xvda', 'ebs': {'attach_time': datetime.datetime(2019, 10, 8, 9, 45, 50, tzinfo=tzutc()), 'delete_on_termination': True, 'status': 'attached', 'volume_id': 'vol-06f377b2690e1e327'}}, {'device_name': '/dev/xvdb', 'ebs': {'attach_time': datetime.datetime(2019, 10, 8, 9, 45, 50, tzinfo=tzutc()), 'delete_on_termination': True, 'status': 'attached', 'volume_id': 'vol-0acf59c694765f138'}}]
inqfen
Нужно для каждого элемента в этом листе, если 'device_name' указан в маунтах - взять volume_id и составить словарь
{
volume_id: mount_point
}
inqfen
сейчас оно в таком виде
{%- set ebs_id_mounts = dict() -%}
{%- for device, dir in mounts.items() -%}
{%- for dev_map in hostvars[inventory_hostname]['block_device_mappings'] -%}
{%- if device == dev_map['device_name'] -%}
{%- set device_id = dev_map['ebs']['volume_id'] | replace ('-', '') -%}
{{ ebs_id_mounts | combine({device_id: dir}) }}
{%- endif -%}
{%- endfor -%}
{%- endfor -%}
{{ ebs_id_mounts }}
inqfen
работает, но ebs_id_mounts где-то в строку превращается, смотрю wtf
Timur
Список волюмов амазоновских тачек пытаетесь получить?