
Vladislav
15.10.2018
17:09:15
Отлично, спасибо

Asten
15.10.2018
17:09:36
сила с нами (с)

Timur
15.10.2018
17:44:04

Cyber
15.10.2018
17:51:36

Google

Timur
15.10.2018
17:54:53
Гораздо легче и логичнее создавать одну переменную - словарь с динамическим списком ключей, чем создавать динамически кучу словарей с одним и тем же именем ключа
Добавлять новые ключи со значениями в имеющийся словарь гораздо легче. И код получается читабельнее

Cyber
15.10.2018
18:13:10
Ну это сути не меняет
Ключ должен быть динамическим

Timur
15.10.2018
18:13:35
Не знаете, как динамически добавлять ключи в словарь?

Cyber
15.10.2018
18:13:57
Ага, расскажи
?

Timur
15.10.2018
18:16:36
Да

Cyber
15.10.2018
18:17:15
Мне хотелось бы чтобы вызавая роль с параметром application у меня эта application добавлялась дополнительным значением в словарь db_pass

Timur
15.10.2018
18:17:50
Это делается через set_fact с помощью фильтра combine
Примеры с телефона не очень удобно набирать

Google

Cyber
15.10.2018
18:18:52
Я пытался сделать так:
set_fact:
db_pass:
{{application}}: {{encrypted_pass}}

Timur
15.10.2018
18:18:53
Но в гугле по ключевым словам куча примеров доступна

Cyber
15.10.2018
18:19:13
Но у меня application не раскрывалось

Timur
15.10.2018
18:19:23
Нужно через combine

Cyber
15.10.2018
18:20:23
combine сложно
Я в итоге сделал так
- set_fact:
db_pass: "{'{{ application }}':'{{encrypted_pass}}'}"
Без combine

Timur
15.10.2018
18:22:08
Это сработает только для одного элемента
Следующий вызов этой конструкции с новым значением переменной перезапишет весь словарь целиком

Cyber
15.10.2018
18:22:49
А потом что будет?
Блииин

Timur
15.10.2018
18:23:05
https://stackoverflow.com/questions/35605603/using-ansible-set-fact-to-create-a-dictionary-from-register-results
По ссылке есть хорошие примеры

Cyber
15.10.2018
18:24:29
блин , ну ты меня расстроил :(

Xman
15.10.2018
21:33:03
посдкажите плиз как правильно загнать переменные, чтото на ночь глядья опух
clickhouse_shards:
shard:
- { name: "01", replicas: ["ch63.smi2", "ch64.smi2"]}
- { name: "02", replicas: ["ch65.smi2", "ch66.smi2"]}
вот темплейт
<?xml version="1.0"?>
<!-- {{ ansible_managed }} -->
<yandex>
<remote_servers>
{% for shard_name, replicas in clickhouse_shards.iteritems() %}
<{{ shard_name }}>
<shard>
<internal_replication>true</internal_replication>
{% for replica in replicas %}
<replica>
<host>{{ replica['host'] }}</host>
<port>{{ replica['port'] | default(9000) }}</port>
</replica>
{% endfor %}
</shard>
</{{ shard_name }}>
{% endfor %}
</remote_servers>
</yandex>
FAILED! => {"changed": false, "msg": "AnsibleUndefinedVariable: 'dict object' has no attribute 'host'"}

Google

Sergey
15.10.2018
22:07:26
посдкажите плиз как правильно загнать переменные, чтото на ночь глядья опух
clickhouse_shards:
shard:
- { name: "01", replicas: ["ch63.smi2", "ch64.smi2"]}
- { name: "02", replicas: ["ch65.smi2", "ch66.smi2"]}
Ты, конечно, работаешь на СМИ2, и это - фу. Но Ансибл - не фу, поэтому он тебе совершенно точно сказал, что ключа host в словаре, который ты описываешь, просто нет.

Alex
15.10.2018
23:56:05
Пробую AWX Project. Нехват Multiple credentials острый. Как выходить из положения? Открытые ключи в проекте зло, т.к. много пользователей.

Dmitry
16.10.2018
02:21:00
ssh ключи?

Terminator
16.10.2018
05:18:41
@d1ktat0r будет жить. Поприветствуем!
@Anikinator будет жить. Поприветствуем!
evgeniy krupen будет жить. Поприветствуем!
@BezrukovAlexey будет жить. Поприветствуем!

Rad
16.10.2018
06:44:29
Вчера озадачился вопросом получения результата рестарта или запуска сервиса , все что я находил это манипуляции с shell или command , т.е. через команд делаем рестарт, результат регистрируемых, а потом смотрим на rc . Но мне это не очень нравится, кто-то знает варианты аккуратней ?

Timur
16.10.2018
06:45:39

Victor
16.10.2018
06:48:54

Rad
16.10.2018
06:54:54

Timur
16.10.2018
06:57:17
Зачем что-то дополнительно проверять?

Rad
16.10.2018
06:58:54

Victor
16.10.2018
06:59:26
Ну значит сервис запустился
То что он потом здох это совсем другое

Timur
16.10.2018
07:03:59
Совершенно верно
Проверять после старта, не упал ли сервис - это не задача ансибла
Если логика сценария требует каких-то данных о состоянии сервиса - это можно сделать, например, с помощью модуля service_facts

Google

Timur
16.10.2018
07:05:16
https://docs.ansible.com/ansible/devel/modules/service_facts_module.html#service-facts-module

Dok
16.10.2018
07:06:30
Если в ансибл добавить последующую инструкцию на запуск сервиса - разве, это не будет являться своеобразной проверкой?

Timur
16.10.2018
07:08:25
Можно два раза вызывать команду запуска сервиса и сравнивать результат changed. Но зачем?

Matvey
16.10.2018
07:08:55
можно хэндлеров наворотить для этого

Admin
ERROR: S client not available

Matvey
16.10.2018
07:09:03
например как тут
https://github.com/kubernetes-incubator/kubespray/blob/master/roles/kubernetes/master/handlers/main.yml

Dok
16.10.2018
07:09:19
Пытается запустить:
Уже запущен - ок
Запустил - чейнжд
Не запустилось - не ок

Matvey
16.10.2018
07:09:35
антил ретрай дилэй

Timur
16.10.2018
07:09:49
bashsible сплошной

Matvey
16.10.2018
07:09:59
да-да)
тяжелые наркотики

Alex
16.10.2018
07:20:17

Danis
16.10.2018
10:28:06
Как в Jenkins, при использовании ansiblePlaybook, передать список в качестве значения переменной для Ansible?
Такое не работает:
var: "[${test}]"
Где test обычная строчка.

Zhiganov
16.10.2018
11:04:17
Кто сможет помочь, дела по примеру одного хорошего человека плейбук для монго дб, ( https://github.com/mrlesmithjr/ansible-mongodb). И у него в переменных есть такой параметр mongodb_replication_group: 'test-nodes' и с этой группы он опеределяет кто мастер а кто слейв будет в реплика сет. Так вот вопрос как он передает группу хостов которые будут использоваться ?
или возможно подскажите как можно определить какой из хостов как мастер и далее в темплейтах и тасках использовать данную переменную

Старый
16.10.2018
11:12:12
на 2,7 кто перешёл уже?

Google

Gleb
16.10.2018
11:13:02
я
очень весело

Старый
16.10.2018
11:13:36
- name: Install packages
yum:
name: "{{ item }}"
state: present
with_items: "{{ packages }}"
- пакет
сейчас же
- name: Install packages
yum:
name: "{{ packages }}"
state: present
но я чтот не врубился а перечисление где делать пакетов?
снизу как раньше не работает, в name тоже

Gleb
16.10.2018
11:13:40
писать не переписать

Matvey
16.10.2018
11:15:45
либо vars в самой таске

Старый
16.10.2018
11:16:41
?нафиг столько сложностей то они делают

Gleb
16.10.2018
11:17:42
please use `pkg: ['aptitude', 'python-apt',
'python-pycurl', 'apt-transport-https', 'python-pycurl', 'debian-keyring']` and
remove the loop.

Victor
16.10.2018
11:19:21
Руки пока не дошли, но вроде как просто вместо item сразу указываешь packages - оно должно лист нормально схавать.

Старый
16.10.2018
11:19:37
ну у меня вообще dnf and portage, но а серьёзно
если бы было так я бы вопросы не задавал
- name: install package
dnf:
name: mc nano iotop iostat htop java-1.8.0-openjdk java-1.8.0-openjdk-headless-debug cassandra
state: present

Matvey
16.10.2018
11:21:41
name это список