
Sander
15.03.2017
21:21:27
работаем дальше )

Петр
16.03.2017
08:53:52
Добрый день
Киньте, пжлст, ссылкой на доку
благодаря которой можно решиить такую задачу:
есть хосты
node01
node02
...
nodeNN
на них надо отредактировать текстовый файл и использовать префиксы конкретного хоста
напр,
заменяется на нодах строка
блабла бла тратата
на node01
блабла бла01 тратата
на nodeNN
блабла блаNN тратата

Марат
16.03.2017
08:56:19
http://docs.ansible.com/ansible/lineinfile_module.html
думаю то что тебе надо

Google

Петр
16.03.2017
08:57:18
ок, спс
почитаю
если у кого-то есть готовый подобный плейбук - буду рад

Alex
16.03.2017
08:57:38
О
А вы что, Ишуткина изгнали?

Semyon
16.03.2017
08:58:00
Да нет, тут он

Alex
16.03.2017
08:58:28
Не вижу в списке пользователей

Semyon
16.03.2017
08:58:37
@cadmi вот же
Всё в порядке

Ivan
16.03.2017
08:59:11
Фух

Alex
16.03.2017
08:59:49
Вместе сможем!

Igor
16.03.2017
10:00:31
Коллеги, а как можно взять ansible_default_ipv4.address определённого сервера?
ну, т.к. я хочу иметь такой host_vars:
blabla: ["{{ server1_ansible_default_ipv4.addres }}","server3_ansible_default_ipv4.addres"]

Anatoly
16.03.2017
10:02:38
через hostvars

Igor
16.03.2017
10:03:10
так я и хочу в hostvars это использовать )

Google

Anatoly
16.03.2017
10:03:46
{{ hostvars['inventory_instance_name']['ansible_default_ipv4.address'] }}
ты про часть файловой структуры ансибла, скажем так, а я про: http://docs.ansible.com/ansible/playbooks_variables.html#magic-variables-and-how-to-access-information-about-other-hosts

Igor
16.03.2017
10:09:38
Спс, попробую

Alina
16.03.2017
10:16:34
Всем привет! Какими способами можно сравнить две переменные? К примеру, в первом таске я грепаю конфиг и записываю результат в первую переменную, во втором таске грепаю второй кониг и записываю во вторую переменную. Сейчас сравнение происходит в отдельном скрипте, но лучше было бы если можно реализовать сравнение в третьем таске или выводить дополнительно переменную, с помощью которой можно понять совпадает ли конфиг с регекспом или не совпадает.

Igor
16.03.2017
10:19:34
when: var1 == var2?

Magistr
16.03.2017
10:19:48
oh god why

Alina
16.03.2017
10:20:15
А если в первую переменную ничего не попадет и во вторую тоже

Igor
16.03.2017
10:20:52
сделать 2 проверки,
1. проверить обьявлена ли переменная
если да
сравнивать

Alina
16.03.2017
10:23:49

Петр
16.03.2017
10:35:49
а как заставить не пропадать начальный 0 в переменной, объявленной в инвентори-файле?

Serge
16.03.2017
10:39:42
#salt #pain
Эти гандоны используют разные ветки гита для данных разных окружений!
Т.е., если я хочу сделать изменение в общих для всех настройках, я должен что? Ребейзить всё? А если у меня одна репа на всё и гитфлоу?
Что за мудацкие решения на каждом шагу!!!
Я, кстати, уже пришел к тому, что бутстраплю солт ансиблом.

Единорожа
16.03.2017
10:45:09
Тук, кто сможет по поводу ec2-external-inventory-script?
Надо групировать хосты по переменной с локалхоста что бы в дальнейшем с ними и работать)
Как сие сделать?)

Serge
16.03.2017
11:02:25

Единорожа
16.03.2017
11:02:48
Gerrit -> Jenins -> ansible -> aws
К примеру в переменная будет GERRIT_REFSPEC которая будет вида refs/changes/27/27/1

Google

Единорожа
16.03.2017
11:05:41
Не очень понятно что в переменной и вообще. Можно подробнее?
Each instance can have a variety of key/value pairs associated with it called Tags. The most common tag key is ‘Name’, though anything is possible. Each key/value pair is its own group of instances, again with special characters converted to underscores, in the format tag_KEY_VALUE e.g. tag_Name_Web can be used as is tag_Name_redis-master-001 becomes tag_Name_redis_master_001 tag_aws_cloudformation_logical-id_WebServerGroup becomes tag_aws_cloudformation_logical_id_WebServerGroup
Может как-то такой тег можно задать при создании
и потом пользоваться им

Serge
16.03.2017
11:07:05
Я все равно не понял.
Вот теги есть...
я все равно не понял как значение "refs/changes/27/27/1" должно быть связано с хостами
ну, т.е. если ты создашь хост с тегом GERRIT_REFSPEC и значением refs/changes/27/27/1, то ты получишь группу "GERRIT_REFSPEC_refs_changes_27_27_1"
тебе это надо?

Единорожа
16.03.2017
11:10:04
Суть в чем - идет выполнение job-ы в jenkinse - он алертит на тригер о том что пришел код на review - этот код должен выгружен быть в свежую виртуалку
Потом этот код заабадонили - виртуалка должна удалиться

Serge
16.03.2017
11:10:39
ну да, создал хост с тегом, потом он в группе по тегу
прямо ровно по доке

Serge
16.03.2017
11:10:55
ты же уже попробовал, да?

Единорожа
16.03.2017
11:11:01
Нет конечно)
Я пришёл клянчить готовое решение

Alexey
16.03.2017
11:12:08
такие у неё выразительные глаза) размер 3...

Единорожа
16.03.2017
11:17:16

Igor
16.03.2017
11:17:46
{{ hostvars['inventory_instance_name']['ansible_default_ipv4.address'] }}
Пытаюсь использовать в шаблоне:
"start_join": ["{{ hostvars['server1']['ansible_default_ipv4.address'] }}","{{ hostvars['server2']['ansible_default_ipv4.address'] }}","{{ hostvars['server3']['ansible_default_ipv4.address'] }}"]
получаю ошибку:
fatal: [server1]: FAILED! => {"changed": false, "failed": true, "msg": "AnsibleUndefinedVariable: 'dict object' has no attribute 'ansible_default_ipv4.address'"}
разобрался

Единорожа
16.03.2017
11:36:38

Google

Alexandr
16.03.2017
13:37:27
всем привет. подскажите, как лучше подкидывать нужный темплейт? на части серверов есть два интерфейса - eth0 и eth1. на другой - только eth0. в зависимости от этого необхоимо нужный темплейт подкидывать. спасибо

dmage
16.03.2017
13:49:57
а нужен тот что с интернетом?

Anatoly
16.03.2017
14:34:53
ну а в случае если нужен не дефолт то методом исключения

Admin
ERROR: S client not available

Alexandr
16.03.2017
14:35:45
уже в гугл сходил, спасибо, ребята
все проще оказалось, чем думал
when: ansible_eth1 is defined

Anatoly
16.03.2017
14:38:22
или у вас новые сетевухи броадкомовские приехали

Alexandr
16.03.2017
14:40:05
с маршрутизацией всё в порядке и все единобразно. просто в зависимости от того, сколько интерфейсов есть, для софтины нужно подкидывать слегка разные темплейты

Anatoly
16.03.2017
14:40:54
я наверное повторюсь но что если у вас второй интерфейс не етх1?

Yuri
16.03.2017
14:41:17

Anatoly
16.03.2017
14:41:40

Yuri
16.03.2017
14:42:39
для темплейтов, говорит...
Это понятно. Просто вдруг на самом деле человеку нужен интерфейс для того, чтобы вытащить оттуда адрес :) Тогда есть более другое решение

Alexandr
16.03.2017
14:43:14
вытащить адрес это уже не проблема)

Anatoly
16.03.2017
14:43:23
я конечно затупил, если честно в ансибле есть ansible_default_ipv4
из фактов
ну и там адресс, алиасы и прочее
правильнее так, все же

Serge
16.03.2017
14:44:17

Google

Yuri
16.03.2017
14:44:18
Ну... вытащить надо еще нужный адрес :)
Например, dnsmasq должен слушать на всех серых адресах, а на внешнем - нет.

Единорожа
16.03.2017
14:45:06
Ну надо еще как-то вытаскивать только те у которых тег соответствует

Yuri
16.03.2017
14:45:32
{% for host_ip in ansible_all_ipv4_addresses %}
{% if host_ip.startswith("192.168.") %}
listen-address={{ host_ip }}
{% endif %}
{% endfor %}
И нафига не надо вычислять, какой же из интерфейсов присутствует - eth1, agge или enp2s0

Единорожа
16.03.2017
14:45:33
в ini я что-то видел

Anatoly
16.03.2017
14:46:44
кстати, кто нибудь знает можно ли несколько коллбэк плагинов навесить?

Yuri
16.03.2017
14:52:04
вернее or

Anatoly
16.03.2017
14:52:40

Yuri
16.03.2017
14:54:48
Тогда непонятен вопрос. Я просто кусок своего конкретного темплейта для одной конкретно взятой задачи привел :)

dmage
16.03.2017
15:45:05
а существует способ в плейбуке разместить цикл, как это можно сделать в темплейтах j2?
когда неизвестен размер массива

Dmitrii
16.03.2017
15:46:09
with_items

dmage
16.03.2017
15:46:28
так там же конечный список

Dmitrii
16.03.2017
15:49:54
Что значит размер массива неизвестен?