maniac
мерж в консоли - херня, только графика норм. Но сильно зависит от задач
вимом нормально мержить, если умеешь вим. но да, завязываю с оффтопом.
Maxim
привет! подскжите как в jinja2 получить название ключа? Хочу вывести field = value одной строчкой в цикле
Alf 🙀
А у к:в пары имя есть?
Dmitrii
for же
Maxim
сейчас поясню
Maxim
вот в переменных у меня такое: gobetween_config_servers: - name: backend1 bind: "0.0.0.0:7001" protocol: "tcp" balance: "roundrobin" discovery: - interval: "60s" - timeout: "2s" - kind: "docker" - docker_endpoint: "unix:///var/run/docker.sock" - docker_container_label: "my.service_name=backned" - docker_container_private_port: 8001 healthcheck: - kind: "ping" - interval: "20s" - timeout: "2s" - fails: 3 - passes: 3 в шаблоне хочу сделать такое: [servers.sample] protocol = "tcp" bind = "0.0.0.0:3000"
Maxim
то есть в цикле всего одну строчку можно сделать - типа key = value ?
𝔹𝕠𝕣𝕚𝕤
{% for k,v in dict.iteritems() %} не подходит?
Maxim
{% for k,v in dict.iteritems() %} не подходит?
сейчас попробую, спасибо
Maxim
{% for k,v in dict.iteritems() %} не подходит?
cпасибо, почти то что нужно! Теперь еще разберу списки вложенные и будет так как я хотел
𝔹𝕠𝕣𝕚𝕤
🤝
Alexandr
всем привет. может кто-нибудь сталкивался с подобным при пуше темплейтов на сервер? [WARNING]: Failure using method (v2_runner_item_on_failed) in callback plugin (<ansible.plugins.callback.default.CallbackModule object at 0x7fb5cc0f2a50>): 'ascii' codec can't decode byte 0xc2 in position 13879: ordinal not in range(128)
Alexandr
вроде всё в темплейте проблемном перекопал
Nklya
кривые символы видимо таки есть
G3rhard
Это какой то новый вид спама - отправлять музыку в группу?
Nklya
Конечно. Эти клоуны занимаются раскруткой каналов
Konstantin
есть группа с 20 машинами. есть роль. когда добавляю новую машину в группу инвентори и нужно пройтись этой ролью и конечно же проходит по всем машинам в группе. можно как-то пройтись только по новой машине (указав именно ее)? с ходу не нашел инфы на сей счет.
Nklya
Так не надо делать. IaC это про другое
Konstantin
-l имя машины
thx, пропустил этот параметр
Алексей
Nklya
Про то, что надо применять ко всем. Записывать в блокнотике, что к этому я уже применил, а к этому нет - маразм
Алексей
Про то, что надо применять ко всем. Записывать в блокнотике, что к этому я уже применил, а к этому нет - маразм
Вы видимо не поняли. У человека есть серверы. Необходимо настроить новый. Он хочет накатить ансибл только на него, дабы не ждать выполнение тасков на других машинах.
Nklya
maybe
Dmitry
Ну, то есть, как так получилось, что один из 20 чем-то отличается?
Алексей
Ну, то есть, как так получилось, что один из 20 чем-то отличается?
Он не отличается. Он новый. Нужно забутстрапить например
Konstantin
@mobilesfinks прав. Есть роль system, она самая первая что накатывается на сервер при поступлении. Серверов уже под 30 и смысла нет ради одного сервера проходить по всем остальным, если я знаю что роль не изменялась.
Pavel
так -i можно сказать, и указать 1 хост
Tadeusz
inventory
Pavel
-i <IP>,
Pavel
-i INVENTORY, —inventory=INVENTORY, —inventory-file=INVENTORY specify inventory host path (default=[[u'/etc/ansible/hosts']]) or comma separated host list. —inventory-file is deprecated
Konstantin
я бы так сделал
Alf 🙀
@mobilesfinks прав. Есть роль system, она самая первая что накатывается на сервер при поступлении. Серверов уже под 30 и смысла нет ради одного сервера проходить по всем остальным, если я знаю что роль не изменялась.
Вынести роль в отдельную репку, делать бутстрап во время инита если это облака какие нибудь, если это какой нибудь самопальный квм | вмваре то пакером колбасить образа из которых разливать приготовленные машинки, если это бэйрметал то делайте это с помощью кикстартеров и пресидов.
citius
Я в подобных ролях сделал сохранение хеша конкретного комита роли внутри роли гит-хуком, при успешном накатывани роли он кладется в локальный факт. Ну и перед накатыванием соответственно проверяется. Если хеш в роли остался старый, скипается.
Алексей
Помимо того, что роль изменилась, изменения могли быть произведены кем-то вручную на хосте
Логично. Только это будет фиксится при запуске по всем машинам, а в данном случае нужен запуск только на одной
Andrey
есть вопросей про ансибл
Andrey
сам он стоит через pip
Andrey
- name: touch file become: no local_action: module: > blockinfile: path ./ssh.cfg insertafter: EOF content: | host {{ inventory_hostname }} hostname {{ ip_var.stdout }} ProxyCommand ssh {{ ssh_user }}@{{ onhv }} nc %h %p
Andrey
вот такая вот конструкция не работает
Andrey
пишет
Andrey
fatal: [<hostname>]: FAILED! => { "failed": true, "msg": "The module blockinfile:\n was not found in configured module paths. Additionally, core modules are missing. If this is a checkout, run 'git submodule update --init --recursive' to correct this problem." }
Andrey
Сам модуль конечно есть
Andrey
ansible 2.2.3.0 config file = ./ansible.cfg configured module search path = Default w/o overrides
maniac
тебе сейчас смешно будет он ищет модуль "blockinfile:\n" а не модуль "blockinfile"
maniac
ХОТЯ
maniac
он и на остальные кор-модули ругается.
Albert
@amavlyanov https://gist.github.com/Tahvok/d59eb41e7184c1ebce4d4b8e76fd99c7
Andrey
хм. попробую щас
Алексей
Надо писать идемпотентные плейбуки и гонять на всех
Это не про ансибл. И у него родовая травма есть называется "время выполнения тасков"
Dmitry
самое просто в плейбук включить переменную target
Dmitry
hosts: {{ target }}
Dmitry
и тогда хоть пов сей группе хоть одному конкртеному
Алексей
hosts: {{ target }}
Зачем использовать костыли, когда есть опция лимит?
Dmitry
-l
Dmitry
можно и через нее
Dmitry
можно тегами
Dmitry
вариантов куча
Dmitry
с таргетом удобно в том плане если опечатался)
Алексей
Тегами это скорее группировка по таскам
Dmitry
решения предложили выбирайте
Алексей
Это не мне нужно было
Dmitry
парни, есть some_list: - ["item1", "item2"] - [" item1", "item2"]
Sergey
это list of lists, если быть точным
Dmitry
хочу в жинже что-то типа {% for current_item in some_list %} blabla current_item[0] blabla current_item[1] {% endfor %}
Dmitry
так можно?
Sergey
в целом да, противопоказаний нет
Dmitry
ооок, спс
Sergey
т.к. list сохраняет порядок элементов, то ты по идее должен получить то, что заказываешь
Dmitry
Народ, помогите мыслью. размышлением а может и знанием.
Dmitry
tasks: - name: Test Web Apps include_role: name: my_role_name vars: app_name: "{{ item }}" resource_name: "{{ item }}" app_state: "{{ state }}" with_items: "{{ testd }}"
Dmitry
данные:
Dmitry
testd: - a - b - c
Dorian
Как бы вставить iptables правило перед reject all?
Dorian
По умолчанию правила добавляются в конец
Dorian
Только insert ом?