
lastsky
24.08.2016
00:38:19
https://github.com/fboender/ansible-cmdb FYI

Igor
24.08.2016
00:39:28
чо за overview?
https://raw.githubusercontent.com/fboender/ansible-cmdb/master/contrib/screenshot-overview.png

lastsky
24.08.2016
00:41:37
интересная штука, генерирует html отчетики по inventory. есть в homebrew.

Google

lastsky
24.08.2016
00:42:16
usage: user@macos $ brew install ansible-cmdb

Max
24.08.2016
01:01:09
а для чего это вообще?

lastsky
24.08.2016
01:03:30
утилита не связана с ansible, но использует ansible inventory, оч. удобно.

Dmitrii
24.08.2016
01:03:53
оно кажется не умеет в yml
а, понял, оно просто парсит сетап вывод)

Max
24.08.2016
01:09:23
я просто не понимаю зачем это
у меня всё то же самое в заббиксе есть в риалтайме

Алексей
24.08.2016
03:14:28

Dmitriy
24.08.2016
06:13:42

Mikhail
24.08.2016
08:09:28
может кто подскажет как лучше поступить
есть список всех пользователей с ключами и другими параметрами в переменных
в плейбуке ансибл проходтся по нему и создает этих пользователей
так вот как можно ограничить каких создавать а каких нет?

Google

Алексей
24.08.2016
08:10:49
плохая идея упроавлять пользователями через ансибл....

Mikhail
24.08.2016
08:11:26
тут задача больше стоит - создать
так вот, есть item с именем пользователя, как мне выяснить есть ли такое имя в массиве, который я передаю для роли отдельно, когда вызываю ее?
что-то вроде:

lastsky
24.08.2016
08:13:47
вот я тоже размышлял над этим вопросом, у меня аналогичная проблема. создавать юзеров ролью. при этом проверять, что нужные юзеры есть а ненужных (уволенных, например) нет - через lineinfile.

Алексей
24.08.2016
08:13:50
нее... нет такой задачи....

lastsky
24.08.2016
08:14:11
извините, перебил :)

Алексей
24.08.2016
08:14:20
авторизация пользовтелей в системе более чем с 5 серверами - ldap

Mikhail
24.08.2016
08:15:04
- name: Create Users
user: name={{ item.name }} shell=/bin/bash state=present uid={{ item.uid }}
ignore_errors: yes
with_items: '{{users}}'
when: item.name in {{ allowed_users }} ???

Алексей
24.08.2016
08:15:08
менее чем с 5-ю ансибл не нужен

lastsky
24.08.2016
08:16:01
согласен что ldap. но иногда есть требование что ходить только ключами и никакими не паролями.
(а у каждого свой ssh ключ)

Magistr
24.08.2016
08:16:26
а ключи в лдап тоже можно класть

Mikhail
24.08.2016
08:16:34

Алексей
24.08.2016
08:16:40

lastsky
24.08.2016
08:16:52
о!

Алексей
24.08.2016
08:17:11
да. у меня есть сборник таких вот говн :)

Александр
24.08.2016
08:17:22

Алексей
24.08.2016
08:17:40
там весь debops можно забирать
но не стоит

Google

Mikhail
24.08.2016
08:17:47
а этот репозиторий давно заметил, там много инетресного

lastsky
24.08.2016
08:17:47
+1, спасибо!

Александр
24.08.2016
08:18:09

lastsky
24.08.2016
08:19:41
я беру только лучшие практики и себе внедряю, иногда бывает что в простых плейбуках довольно интересные вещи попадаются.

Mikhail
24.08.2016
08:30:49
почитал, не совсем то что нужно
вот есть же фильтр: when: item.name != 'root'
можно ли сделать что-то вроде
when: item.name != ['aa','bb','cc']
?

lastsky
24.08.2016
08:32:53
хмм какую проблему должен решить !=root?

Mikhail
24.08.2016
08:33:06
это для примера
один элемент можно отфильтровать
а вот массив - уже не знаю как

lastsky
24.08.2016
08:33:35
“как можно ограничить каких создавать а каких нет”?

Mikhail
24.08.2016
08:34:17
root это пример username
есть база где расписаны все пользователи, из нее нужно выбрать только часть
самый удобный способ, который я вижу - перечислить по логинам
можно добаваить в базу параметр с группой, тогда можно отфильтровать по группе
это частично решает проблему
наверное так и нужно делать

Google

Mikhail
24.08.2016
08:36:55
просто если пользователь входит в несколько групп - опять все возвращается к началу
или если нужно дать доступ нескольким группам

lastsky
24.08.2016
08:41:59
ну здесь короче огромный риск погрязнуть в “программировании в конфигах” и это плохой путь, неверный. с другой стороны как-то нужно подойти.
например, на всех серверах одинаковый набор юзеров. проверяем есть ли юзер, нету -> катим, есть -> не катим. повторить для группы, итд, например.

Mikhail
24.08.2016
08:43:56
у меня все проще - мне не нужно удалять/приводить состояние сереров к состоянию в ансибл базе/плейбуке
мне нужно просто создать пользователей
я думал может есть какой синтаксис как сделать такой фильтр
перекопал доки

lastsky
24.08.2016
08:45:22
через vars тогда

Vyacheslav
24.08.2016
08:45:34
when: var in {{ bar }} не работает?

Mikhail
24.08.2016
08:46:22
item.name in lookup {{ allowed_users }} - нет

Vyacheslav
24.08.2016
08:46:33
в bar список юзеров

Mikhail
24.08.2016
08:48:21
{"failed": true, "msg": "The conditional check 'item.name in lookup {{ allowed_users }}' failed. The error was: template error while templating string: expected token ',', got 'string'.

Vyacheslav
24.08.2016
08:49:31
ну я же без lookup пишу
просто вхождение переменной их массива

Mikhail
24.08.2016
08:50:55
fatal: [192.168.40.170]: FAILED! => {"failed": true, "msg": "The conditional check 'item.name in {{ allowed_users }}' failed. The error was: template error while templating string: expected token ',', got 'string'. String: {% if item.name in [u'user'] %} True {% else %} False {% endif %}\n\nThe error appear
var in {{ bar }} было первым что я пробовал
в разных варинатах
потом уже начал с lookup и другими вещами мучаться
сейчас попробовал - если написать массив прямо в плее - работает

Google

Mikhail
24.08.2016
09:03:16
вобшем все оказалось очень тривиально
item.name in "{{ allowed_users }}"
так работает
сорри что отвлек

lastsky
24.08.2016
09:06:52
на github клади потом рабочий вариант вместо извинений =)

Mikhail
24.08.2016
09:07:19
какой гитхаб?

lastsky
24.08.2016
09:14:09
ну своя, например, репа, если это не попадает под nda :)

1010101
24.08.2016
09:36:46
хочу один template использовать в разных ролях. как быть?

Igor
24.08.2016
09:37:18
используй, в чём трабла?

1010101
24.08.2016
09:38:12
он находится сейчас в директории с одной ролью, и в нем есть переменные из этой роли.
ссылаться тупо на него же из плэйбука другой роли?

lastsky
24.08.2016
09:39:25
так это… а ты не попробовал поместить его в корень в templates а не в роль в templates?

1010101
24.08.2016
09:39:41
получится наглухо связываем роли

Dmitry
24.08.2016
09:40:05
но ведь именно этого ты и добиваешься своей постановкой задачи :)

1010101
24.08.2016
09:40:11
там есть одна роль-специфичная переменная (

lastsky
24.08.2016
09:42:48
определи эту переменную в inventory.
или ещё где-нибудь.
и тогда роли не свяжутся между собой.