@pro_ansible

Страница 624 из 625
Sasha
25.10.2018
17:29:30
допустим. а как решить задачу?

Timur
25.10.2018
17:31:23
допустим. а как решить задачу?
Рекомендую глянуть вот эту статью по лупам: https://chromatichq.com/blog/untangling-ansible-loops

Там хорошо и на примерах разные способы циклов разобраны

Google
Timur
25.10.2018
17:32:36
⚓D
25.10.2018
17:33:08
Это неважно. Там изначально неправильно все делается :)
Вроде норм, если fileglob возвращает строку

Timur
25.10.2018
17:33:55
Аргументу нужна строка в виде ключа

А не список файлов :)

⚓D
25.10.2018
17:39:41
А не список файлов :)
Ну вот, я действительно не правильно догадывался о том как работает fileglob

Timur
25.10.2018
17:40:38
Можно много ключей в одном файле
Да, можно, если все ключи юзера засунуты в один файл с тем же именем

Sasha
25.10.2018
17:41:16
authorized_key: user: '{{ item }}' key: '{{ lookup('file', 'files/public_keys/'+item }}' with_items: "{{ users }}" Наверно как то так, если ключи будут в файле, а в списке только имена пользователец
там сложнее. есть папка с отдельными ключами. для разных пользовтелей разный набор ключей должен быть вроде такого --- users: - username: alice use_sudo: yes public_keys: ['a', 'b', 'c'] - username: bob use_sudo: no public_keys: ['b', 'c'] - username: carol use_sudo: yes public_keys: ['c'] а в files/public_keys/ лежат три ключа a, b и с

Google
Terminator
25.10.2018
17:41:37
@bop0hz будет жить. Поприветствуем!

Sasha
25.10.2018
17:44:29
да, да, статья хорошая, как раз смотрю

⚓D
25.10.2018
17:50:16
Наверно нужно with_subelements: - "{{ users }}" - key_files А список такой: users: - username: user1 key_files: - a - b Имя файлов будут в item.1 Имена пользователей в item.0.username

Timur
25.10.2018
17:51:36
Посмотрите ещё вариант with_nested

⚓D
25.10.2018
17:54:33
Посмотрите ещё вариант with_nested
Там наверно нельзя в качестве второго списка передать результат из первого

Lomakin
25.10.2018
17:59:18
нет. тэг нужно поставить таске downloading_binary и с ним запускать плейбук
Достаточно было протэгировать main.yml и все заработало благодарочка

Timur
25.10.2018
17:59:37
А ключи можно доставать с помощью lookup из полученного имени файла

⚓D
25.10.2018
18:02:20
Но я бы просто запихал сами ключи в переменные и вообще не смотрел бы в файлы

Sasha
25.10.2018
18:03:39
для каждого пользователя повторять все ключи текстом ? или другая идея?

⚓D
25.10.2018
18:04:58
users: - username: user1 key_files: - '{{ a }}' - '{{ b }}' Например так

Sasha
25.10.2018
18:05:38
спасибо за идею

⚓D
25.10.2018
18:07:51
Или так что бы цикл был проще users: - username: jane keys: | {{ Key1 }} {{ Key2 }} - username: john keys: | {{ Key1 }} {{ Key3 }}

Vladislav
25.10.2018
18:13:54
да, давал суду на рестарт сервисов, на хосте sudo systemctl restart от юзера отрабатывает
Вы выдали права повышения до рута на mgr в рамках рестарта сервиса

Igor
25.10.2018
18:15:03
Вы выдали права повышения до рута на mgr в рамках рестарта сервиса
какой вариант, не назначая дополнительных прав через модуль системд запустить?

Vladislav
25.10.2018
18:17:33
Надо документацию почитать, но вроде вариант либо идете под рутом в ансибле, либо костыль через комманд

Vladislav
25.10.2018
18:19:26
И что? Хотите сказать, что рут не смог?

Google
Igor
25.10.2018
18:23:26
Говорю же прошел, но рута по ссш передавать не хочу

Vladislav
25.10.2018
18:23:44
?

Timur
25.10.2018
18:41:06
Идёте по ссш под обычным пользователем, а там уже просто повышаете привилегии до рута

Только на время выполнения задачи

Nklya
25.10.2018
22:26:34
Джефф тоже решил быть в тренде)) https://leanpub.com/ansible-for-kubernetes

Vadim
25.10.2018
22:29:43
Кстати, никто не думает съездить в феврале на CfgMgmtCamp?

Alex
25.10.2018
22:54:02
https://www.serverlab.ca/tutorials/dev-ops/automation/using-hashicorp-vault-with-ansible-jinja2-templates/ Это конечно круто, но там не описано, что если по указанному пути в хаши валт нет данных, чтобы ансибл создал и положил их туда. Тогда миграции между стендами(тест - прод) пройдут плавнее. Ещё вопрос как создавать закрытый ключ с паролем для каждого хоста и класть эти данные в хаши валт, а потом забирать их оттуда для подключения к хостам?

Terminator
25.10.2018
23:02:38
@d_kuzmin будет жить. Поприветствуем!

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

dmbm
26.10.2018
06:44:12
Vadim
26.10.2018
06:44:47
bebebe
26.10.2018
07:06:29
--- - name: load ldap contacts shell: > ldapsearch -D "{{ ldap.bind.dn }}" -w "{{ ldap.bind.password }}" -o ldif-wrap=no -LL -b "{{ ldap.search_base }}" -H "ldap://{{ ldap.server }}" | sed -r 's/([^:]+)::? (.*)/"\1":"\2",/' | awk 'BEGIN {printf("{\n")} {printf("%s\n", ($0 == "") ? "\"\":\"\"}{" : $0 )}' | jq -s '.' register: ldap_user - name: templating contacts template: src: templates/nagios-config/contacts.cfg.j2 dest: "{{ artifact_dir }}/contacts.cfg"

просто оставлю это здесь

Nklya
26.10.2018
07:10:57
красиво, но однострочники на питоне все же веселее

Timur
26.10.2018
07:14:11
sed вместе с awk - дурдом

Victor
26.10.2018
07:16:12
grep'а не хватает

Andrey
26.10.2018
07:33:36
я бы в этот код поместил коммент с примером вывода ldapsearch и примером выхлопа awk

Google
Andrey
26.10.2018
07:34:10
хотя код читается и понятен, чтобы быть уверенным в его правильности нужно знать желаемое поведение

bebebe
26.10.2018
07:34:46
в коде проблемы не было, была проблема в людях :/ это из разряда, написал и забыл.

я бы в этот код поместил коммент с примером вывода ldapsearch и примером выхлопа awk
да, а в целом хорошая практика да, оставлять примеры output'а обычно делаю это в commit мессаджах, и благополучно забываю

я тогда еще удивился, что в 21веке нету конверторов из ldap output'а во что-то структурирование yaml/json/etc были странные поделия на python/ruby которые работали мягко говоря странно

bebebe
26.10.2018
08:07:24
даже вот такое помню пробовал https://github.com/quinot/ansible-plugin-lookup_ldap

или подобное, но к сожалению толи инструменты были не очень, толи не понял как их правильно запилить под свою задачу tldr они не подошли.

пробовал запилить на чистом jq - тоже не осилил, в jq можно писать что-то своего map reduce но написать на map-reducre конвертацию из ldapdiff в json тоже не осилил.

Lomakin
26.10.2018
09:17:52
Подскажите как правильно передать значения VARS в playbook c ролями https://telegra.ph/mongodb-install-10-26

- role: mongodb_install mongo_version: - 3.4.9 tags: - installbin - addsudouser Методом тыка вот так

Павел П.
26.10.2018
10:24:58
Добрый! не подскажите, какой best practice получить список хостов где не прошел пинг? Ручками пропарсить вывод этой ad-hoc команды в лог ?

Terminator
26.10.2018
10:26:35
@Director_Muz_TV будет жить. Поприветствуем!

Денис
26.10.2018
10:28:50
в конфиге включаются

а если надо перед плейбуком проверить какие хосты доступны, есть wait_for_connection, например

Павел П.
26.10.2018
10:31:21
Спасибо! Наверно и правда правильнее сразу будет в плейбук писать)

Денис
26.10.2018
10:32:44
с версии 2.7 вроде ансибл научился обрабатывать ошибку, когда хост unreacheble

может тоже пригодится

Павел П.
26.10.2018
10:33:28
спасибо!

Google
om
26.10.2018
10:44:25
Подскажите, а есть ли модуль для обновления хостов, который умеет как apt, так и yum?

om
26.10.2018
10:47:37
https://docs.ansible.com/ansible/2.5/modules/package_module.html
Спасибо. А разве он умеет обновлять установленные пакеты?

Victor
26.10.2018
10:48:12
om
26.10.2018
10:49:19
Danis
26.10.2018
12:56:22
Как получить количество item'ов списка?

mertv0e
26.10.2018
12:59:28
.count попробуй

https://docs.ansible.com/ansible/2.7/user_guide/playbooks_variables.html#variable-precedence-where-should-i-put-a-variable

в самом начале

Lomakin
26.10.2018
13:40:23
https://github.com/kamelotnsk/ansible_deploy Прошу помощи, example_install.yml указываю явно ставить только с тэгом ansible выполняет все таски не обращая внимания на tags

Вроде везде протэгировал

Lomakin
26.10.2018
13:57:34
Запускаю https://github.com/kamelotnsk/ansible_deploy/blob/master/playbook/example_install.yml

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