
Алексей
15.09.2017
13:11:16
DRY переоценен, да. слышал такое.

Kirill
16.09.2017
10:54:02
Народ, подскажите, куда правильнее поставить файл переменных - сейчас вот такая структура, и переменные не находятся. хотелось бы их держать в отдельном файле

sic transit
16.09.2017
11:00:01
http://docs.ansible.com/ansible/latest/playbooks_best_practices.html

Google

Kirill
16.09.2017
11:14:53
ага... почему я спросил это - потому как ansible-galaxy создал такую структуру
и хотя в vars/main.yml были переменные - при запуске ansible переменные не находились

Sergey
16.09.2017
11:23:32
ansible-galaxy создаёт структуру, которая должна лежать в roles (пруф - https://galaxy.ansible.com/intro)
а не находятся они потому, что у тебя структура проекта не совпадает с принятой в ансибле
как вариант - можешь тут почитать: https://habrahabr.ru/post/304732/

sic transit
16.09.2017
11:25:47

Kirill
16.09.2017
11:26:09
для проверки перенес папку vars в roles\webserver\ - однако все равно глушняк
пока сижу, читаю...

Sergey
16.09.2017
11:27:36

Kirill
16.09.2017
11:28:15
ладно, спасибо обоим, невнимательность как всегда, погубит

sic transit
16.09.2017
11:30:45

Nazar
17.09.2017
17:15:22
Коллеги, вечер в хату!
Подскажите пожалуйста, как правильнее пробежаться по элементам вот такой структуры.
upstream:
- name: app1
ports:
- 8000
- 8001
- 8002
- 8003
- 8004
- name: app2
ports:
- 9000
- 9001
- 9002
- 9003
- 9004
Мне нужно сгенерировать названия файлов взяв upstream.name и ключ ports
На выходе ожидаю получить
app1-8000
…
app1-8004

Alexander
17.09.2017
17:38:40

Google

Nazar
17.09.2017
17:41:05
проблема в том, что я не пойму как мне проитерироваться по ключу ports каждого app

Alexander
17.09.2017
17:48:54
name: "{{ item[0] }}-{{ item[1] }}"
with_nested:
- "{{ upstream.name }}"
- "{{ upstream.ports}}"

Nazar
17.09.2017
17:50:08
увы но нет. не работает такой вариант
Пробовал
- name: Debug
debug: mgs="{{ item[0] }}-{{ item[1] }}"
with_nested:
- "{{ upstream.name }}"
- "{{ upstream.ports}}»

Alexander
17.09.2017
17:51:15
Хм

Nazar
17.09.2017
17:51:17
TASK [deploy : Debug] **********************************************************
fatal: [10.0.0.1]: FAILED! => {"failed": true, "msg": "'list object' has no attribute 'name'"}
to retry, use: --limit Deleted User /develop/deploy/deploy.retry

Pavel
17.09.2017
17:55:26
у меня типа такого работает:
name: "{{ item.0 }}-{{ item.1 }}"
with_subelements:
- "{{ upstream.name }}"
- "{{ upstream.ports}}"

Nazar
17.09.2017
17:56:36
а какая версия ansible ?

Alexander
17.09.2017
17:56:37
Какой вывод для msg=" {{ upstream }} " без цикла?
Как буд-то переменная не определена

Pavel
17.09.2017
17:57:41

Nazar
17.09.2017
17:58:23
TASK [deploy : Debug] **********************************************************
ok: [10.0.0.1] => {
"msg": [
{
"name": "app1",
"ports": [
8000,
8001,
8002,
8003,
8004
]
},
{
"name": "app2",
"ports": [
9000,
9001,
9002,
9003,
9004
]
}
]
}

Alex
17.09.2017
18:01:02

?simplemice
17.09.2017
18:02:08
подскажите какой плагин вы подключили что бы так дерево рисовал?

Nazar
17.09.2017
18:02:37

?simplemice
17.09.2017
18:03:22

Алексей
17.09.2017
18:04:14

Nazar
17.09.2017
18:04:14
это консольный пакет

Kirill
17.09.2017
18:04:19

Google

?simplemice
17.09.2017
18:04:28
аааа тьху, спасибо

Kirill
17.09.2017
18:04:57
А раскраска - потому как там стоит zsh

?simplemice
17.09.2017
18:06:47

Nazar
17.09.2017
18:06:52
вроде правило не нарушал.
Ну ок, раз такие ранимые.

?simplemice
17.09.2017
18:07:43
zsh тоже стоит, а до пакета не додумался

Алексей
17.09.2017
18:07:44

Nazar
17.09.2017
18:15:45

Alex
17.09.2017
18:16:01
естественно
я бы переделал структуру на что-то типа - {name: app1, port: 8002}
так значительно легче итерировать

Nazar
17.09.2017
18:58:35
Всем спасибо!

Sergey
17.09.2017
19:59:34

Ильдар
17.09.2017
20:12:17
Репликацию mysql кто-нибудь поднимает ансиблом? Или только демоны готовите, а дальше руками?

Nazar
17.09.2017
21:10:41
Друзья, а можно ли что-то похожее сделать?
- name: Debug
debug: msg="{{ item[1] }}"
with_dict:
- "{{ upstream }}"
- "{{ item.value.ports }}"

Sergey
17.09.2017
22:37:10

Alexey
17.09.2017
22:40:27
@freeseacher Леш, а за что itjunky забанили?
Коллеги, а кто-нибудь сидит в чате pro_ansible? Похоже меня там забанили не ясно за что...

Google

Алексей
17.09.2017
23:05:13
Это к @Unkledolan

Uncel
17.09.2017
23:06:28
Разбанил, не помню что там было, лог только за 48 часов. Мб ошибся кто-то

Alexey
17.09.2017
23:08:19

Bsod
18.09.2017
04:08:29
Сбоку посижу. Вдруг чего интересного будет.

Kirill
18.09.2017
04:09:27

sic transit
18.09.2017
04:25:56

Alex
18.09.2017
05:19:44
Подскажите пожалуйста, как у Ansbile можно сделать отрицание фильтра например, вывести всё что не Ip
Аля: not "{{ item | ipaddr }}"
?

Konstantin
18.09.2017
07:36:45
народ, привильно понимаю что { role: xxx, tags: [ yyy, ccc ] } это не рабочий вариант или при каких -то условиях должно работать?

тнн Itjunky
18.09.2017
07:53:19
Привет коллеги ;)

Алексей
18.09.2017
07:53:30
непривет

тнн Itjunky
18.09.2017
07:54:34
Есть ошибочка
fatal: [debian-test]: FAILED! => {"changed": false, "failed": true, "msg": "src (or content) and dest are required"}
И yml такого вида
- name: upload configs
copy:
src: "{{ role_path }}/files/iostat_userparams.conf"
dst: "/etc/zabbix/zabbix_agentd.conf.d/iostat_userparams.conf"
Не могу сообразить как правильно написать

Алексей
18.09.2017
07:55:45
dest
не dst

Grigory
18.09.2017
07:57:53

тнн Itjunky
18.09.2017
07:58:22
dest
Блин, а в ошибке про src речь.... Странно, но спасибо.

Алексей
18.09.2017
07:58:43
and

тнн Itjunky
18.09.2017
07:58:54
Да, щас вчитался внимательнее в ошибку

Konstantin
18.09.2017
08:03:45

Grigory
18.09.2017
08:05:57

Konstantin
18.09.2017
08:07:36
есть роль где есть установка сервиса и конфигурация. но где то надо только установить. и помнить что роль нужно запустить с какими то ключами — проблема.

Google

Konstantin
18.09.2017
08:09:12
бить роль на установка и конфигурация уж совсем чет не то

тнн Itjunky
18.09.2017
08:09:43

Dmitry
18.09.2017
08:10:23
Всегда так делаю (установка/конфигурация) - тащемта это разные задачи.
Между ними может и неделя пройти :)))

Konstantin
18.09.2017
08:11:25
внутри роли разбито все по файлам. эт понятно. но бить vertica.ins`/`vertica.conf на роли чет как то не то вроде. как вариант можно скрипты использовать…

Dmitry
18.09.2017
08:12:29
Не с той стороны к задаче подходим :) вот и "не то"

Konstantin
18.09.2017
08:15:34
придеться бить на роли… скрипты это еще один слой про который надо будет помнить..

тнн Itjunky
18.09.2017
08:52:57
Странно, я удалил файл, который ранее создал через copy:
Но при повторном запуске таска, файл снова не копируется на целевую систему =(

Dmitry
18.09.2017
09:04:50
Коллеги, привет!
Есть вопрос по переменным : хочу в самом начале плейбука единоразово задать переменную. Переменная - вывод из shell-а. В group_vars/all/vars.yml - забиваю следующее:
—-
hosts: all
tasks:
- name: create_token
shell: ls
register: ls_var
global_token: "{{ls_var.stdout}}"
добавляю дебаг таск для определенной роли - вызываю и получаю ошибку неопределенной переменной ls_var
При этом, если заменить в описании переменной ls_var.stdout на обычный текст - переменная global_token вполне нормально определяется и выводится при дебаге

Алексей
18.09.2017
09:05:48
в варсах вроде не идет выполнение тасков

Dmitry
18.09.2017
09:08:19

Sergey
18.09.2017
09:10:08

Dmitry
18.09.2017
09:10:37
Подозреваю, что придется инклюдить в site.yml еще один плейбук, который будет задавать вот эти переменные

Konstantin
18.09.2017
09:12:03