@pro_ansible

Страница 611 из 625
Vladislav
15.10.2018
17:09:15
Отлично, спасибо

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

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
Ага, расскажи

Не знаете, как динамически добавлять ключи в словарь?
ты имеешь ввиду такую структуру: db_pass: app1: "pass1" app2: "pass2" app3: "pass3"

?

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 острый. Как выходить из положения? Открытые ключи в проекте зло, т.к. много пользователей.

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

@Anikinator будет жить. Поприветствуем!

evgeniy krupen будет жить. Поприветствуем!

@BezrukovAlexey будет жить. Поприветствуем!

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

Rad
16.10.2018
06:54:54
А какой результат интересует?
Интересует удалось сервису стартануть или нет

Timur
16.10.2018
06:57:17
Интересует удалось сервису стартануть или нет
Модуль сервиса обеспечивает нужный результат и так. Если не удалось стартануть - выдаст ошибку

Зачем что-то дополнительно проверять?

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
а к чемy credentials-то?
Там и ключи и пароли и sudo

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
писать не переписать

Старый
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, но а серьёзно

Руки пока не дошли, но вроде как просто вместо item сразу указываешь packages - оно должно лист нормально схавать.
fatal: [: FAILED! => {"changed": false, "failures": ["mc nano iotop iostat htop java-1.8.0-openjdk java-1.8.0-openjdk-headless-debug cassandra MarkingError()"], "msg": "Failed to install some of the specified packages", "rc": 1, "results": []}

если бы было так я бы вопросы не задавал

- 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 это список

Страница 611 из 625