Aleksey
@FuxGN вон топик же
Aleksei
@FuxGN вон топик же
Да читал я про то, что они новые возможности напихали. Просто в день релиза в репы не приехал Анзюбль, вот я и притормозил с проверкой и переездом
Aleksey
а вообще вот это вот http://docs.ansible.com/ansible/2.5/plugins/lookup/openshift.html с учетом Provides access the full range of K8s APIs. выглядит стремно. @vrutkovs
Aleksei
а вообще вот это вот http://docs.ansible.com/ansible/2.5/plugins/lookup/openshift.html с учетом Provides access the full range of K8s APIs. выглядит стремно. @vrutkovs
Думаю, для OpenShift, то, они постарались как надо. Вот на счёт остального - вопрос =)
Anonymous
видимо придётся, ну да ладно
Dmitry
Всем привет! Коллеги, как с помощью Ansible заменить в файле определенную по счету строку, например, 7ю? Все примеры, которые нахожу, используют либо regexp (мне не подходит, неизвестно что в этой строке), либо маркеры "начало\конец файла" - тоже не мой случай.
Tadeusz
shell %)
Sergey
внутри ансибловых ролей работают все фичи джинджы? я хочу принимать в роли список список из словарей и динамически добавлять новые параметры в эти словари
Многие. Во всяком случае, внезапно можно написать "{% set var = (jinja2 operators functions filters and all) %}{{ var }}", и оно будет работать, но with_items такую шляпу не приемлет.
matt
openssl_privatekey в 2.5 так и не научили генерить ec-ключи
Anonymous
Интересно. Можешь отписать как получилось?
пока что заставил работать вот такое: '{% for item in sites %}{{ item | combine({"username": item.domain | regex_replace("\.|-", "_")}) }}{% endfor %}'. только возвращается это всё в виде строки, лол
Pavel
спрошу еще раз на всякий случай: можно ли в 1 блок "blockinfile" воткнуть список целиком построчно?
Anonymous
я бы попробовал так: - name: users blockinfile: dest: blabla marker: "# {mark} my users" insertafter: "^#USERS:" block: | {% for item in [1, 2, 3] %} user: {{ item }} {% endfor %}
Dmitry
Господа. Есть ansible последней достпуной версии (2.1.1.0-1~ubuntu16.04.1). Ключи SSH есть, подключиться к целевым устройствам получается. но при попытке запустить любой плейбук, получаю fatal: [10.6.7.1]: UNREACHABLE! => {"changed": false, "msg": "SSH Error: data could not be sent to the remote host. Make sure this host can be reached over ssh", "unreachable": true}. Что я делаю не так?
Sergey
запусти то же самое с ключом -vvvv, тогда увидишь подробный лог
eucariot отпуск (MSK+4)
Всем привет. В модуле ce_config для хуавэйских коммутаторов нашёл не то багу, не то фичу, которая мешает нормальной работе. У себя на локалке подхачил, но такое не апстримят. Что сделать, чтобы кто-то с прямыми руками посмотрел и переделал? Автор модуля на issue не отвечает.
Dmitry
запусти то же самое с ключом -vvvv, тогда увидишь подробный лог
Пробовал, но яснее не стало https://pastebin.com/vxcZ49FX
Dok
А как подключаешься по ssh? С использованием ~/.ssh/config?
Sergey
ну и использование учётки root?...
Денис
В роли указан ключь?
Dok
Чёт не пойму, сначала 10.6.7.1, потом, 10.6.3.1, теперь 10.6.10.1 Добавь в тот файл Host test HostName 10.6.10.1 User root И укажи в хостах ансибла test
Денис
Можно еще так в инвентори ansible_user=root ansible_ssh_port= 22 ansible_connection= ssh Можно еще ключь ansible_ssh_private_key_file=
Dmitry
Можно еще так в инвентори ansible_user=root ansible_ssh_port= 22 ansible_connection= ssh Можно еще ключь ansible_ssh_private_key_file=
Прописал в начале инвентори [routers] ansible_user=ansible ansible_ssh_port=22 ansible_connection=ssh ansible_ssh_private_key_file=/home/cnc/ansible/keys/id_rsa - та же ошибка
Dok
в плейбук?
нет, в ~/.ssh/config
Dok
И, кстати, можешь потом ссашаться уже через команду ssh test
Денис
ansible_user=root это в переменные ансибла или так как сказал @Dok2d в .ssh/config добавить пользователя
Dmitry
И, кстати, можешь потом ссашаться уже через команду ssh test
там много хостов (под сотню), я просто копировал логи по отдельно взятому. Раньше-то работало без такого настроенного config. Но недавно были установлены апдейты - и вот описанная выше беда.
Dok
Ну настроенный конфиг это, само по себе уже очень удобно
eucariot отпуск (MSK+4)
Исправленный под другим именем?
Aleksey
нет под тем же именем
Aleksey
создай папку в корне плейбука
Aleksey
положи туда исправленный модуль
eucariot отпуск (MSK+4)
Так я хочу заапстримить)
Aleksey
все хотят. список пулреквестов видишь да :)
Ievgen
все хотят. список пулреквестов видишь да :)
кстати я вчера тут вопил что jinja кривая, так вот это не jinja это руки, sad but true
Ievgen
)
Sergey
кстати я вчера тут вопил что jinja кривая, так вот это не jinja это руки, sad but true
Обычно так, да. В джиндже можно вообще на ушах ходить вприсядку - запихнуть в переменную Jinja2-операторы/команды/фильтры, провернуть через "{{ }}" два раза, прицепить|to_json|from_json, чтобы снять признак Unsafe, и опа - внезапно множество однотипных объектов не нужно описывать ручками.
Ievgen
это да
Ievgen
ну короче если кто то хочет сделать так: {% for cl in clusters_config|json_query("[].cluster")|unique %} <{{ cl }}> {% for sh in clusters_config|json_query("[?cluster=='" + cl + "'].shard_id")|unique %} <shard> {% for replica in clusters_config|json_query("[?(cluster=='" + cl + "' && shard_id=='" + sh + "')]") %} то так можно
Sergey
😃 в общем да, но это же ты кусок шаблона написал 😉 а я писал про то, что это вот всё можно прямо в var.yml вкарячивать
Ievgen
ну да, я знаю )
Ievgen
[ ]
Ievgen
только []
Ievgen
ну без пробела
Денис
Надо же ))
Ievgen
json_query("[].cluster")
Aleksey
json_query сильная магия
Ievgen
очень
Dok
А как добавить записи в крон без ковычек? Например, cron: name=SHELL env=yes value=/ bin/bash Добавляет SHELL="/bin/bash"
Dok
непривычно чёт
Ievgen
ну сделай файл test.sh: #! /bin/bash SHELL="/bin/bash" echo $SHELL
Ievgen
и /bin/bash test.sh
Ievgen
нормально все, не заморачивайся
Dok
Уделал)
Aleksei
Коллеги, есть нужда выполнить задачу единажды на каждом сервере (после разворачивания машины хочу запускать yum update). Как это можно реализовать? run_once запускает только на одном хосте задачу, а мне надо, чтобы задача выполнялась на всех. Единственный выход который придумал - создавать файл, при наличии которого Ansible будет понимать, что таск уже запускался
Aleksey
yum name=* state=latest
Aleksey
не выдумывайте граблей
Aleksei
не выдумывайте граблей
Он же будет каждый раз выполняться при запуске плейбука. У нас сейчас так и я мелкие проблемы получаю с версиями пакетов на средах
Vadim
"единожды" == в рамках плейбука или в рамках жизни сервера?
Vadim
ну раз не хотите строгого списка пакетов, которые ставить (== идемпотентность), то token file - это решение
Vadim
В рамках жизни сервера
энсибл о таком не знает. В виде альтернативы - сохранять в факт, но тогда их надо хранить только на сервере, со всеми вытекающими
Aleksey
флаговый файл да.
Dok
Или после апдейта обнулять source.list))
Aleksey
ой давайте не будем про плохие практики
Pavel
может я рукожоп, но у меня для таких "новых" хостов отдельная группа, при создании - я его туда добавляю, после накатки - удалаю никакой автоматизации
Aleksey
надо меньше плохих практик
Aleksey
обновления пакетов на сервере мастхев.
Aleksey
выключать обновления на сервере — путь к сломаному серверу
Aleksey
процесс в котором нельзя обновлять пакеты сломан изначально.
Salem
Сделай отдельную роль с обновлением пакетов