
Victor
04.10.2018
09:56:20
И почему боль с их организацией

Kirill
04.10.2018
09:56:42
хмм, а бэкапы это не host-specific files?

Victor
04.10.2018
09:57:14
бэкапы чего?

Kirill
04.10.2018
09:57:40
да чего хочешь, как разница чего, того же smtp server, certificates etc

Google

Kirill
04.10.2018
09:59:21
потом эти все бэкапы как ресторить если они host-specific?

Victor
04.10.2018
10:02:11
имхо host-specific конфигурация должна лежать в inventory, сертификат вообще проще новый поставить.

Kirill
04.10.2018
10:03:36
ну если вообще всегда ставить новые сертификаты, то к чему тогда бэкапы, ну да, ну да

Victor
04.10.2018
10:04:19
бекапить нужно дату, которая не является конфигурацией

Kirill
04.10.2018
10:05:04
какую дату если у тебя сотни k8s нод, с сертификатами, и если одна нода вылетает тебе надо максимально быстро сделать рестор, включая сертификаты

Victor
04.10.2018
10:07:58
Но зачем, если можно завести новую ноду?

Kirill
04.10.2018
10:15:31
потому что kubeletом надо обновлять все k8s workers если упал мастер, а в случае рестора не надо

Vadim
04.10.2018
10:15:34
хранить сертификаты для каждой ноды в ansible? Но зачем? Есть tls bootstrapping

Victor
04.10.2018
10:17:56

Sergey
04.10.2018
10:18:35

Victor
04.10.2018
10:19:08

Sergey
04.10.2018
10:19:36
зато для тестов самое оно(если ресурсов немного)
можно разрешить мастеру деплоить на себя

Victor
04.10.2018
10:19:56

Google

Kirill
04.10.2018
10:20:33
ты удивишься но деплоев в мире с одним мастером пруд пруди

Victor
04.10.2018
10:22:12
в продакшене?

Kirill
04.10.2018
10:22:19
и мы не ограничиваемся одним kubernetes, при управлениями 10-20-30 DNS auth серверами мы делаем бэкапы DNSSEC DBs, и эти вещи нельзя просто взять и создать заново при ресторе ноды

Sergey
04.10.2018
10:25:18

Victor
04.10.2018
10:58:14

Andrei
04.10.2018
10:59:09
подскажите куда копать, чтобы понять, что за d,s,p
- name: Set the l_env
set_fact:
l_env: "{% if jm_env=='Develop' %}d{% elif jm_env=='Staging'%}s{% else %}p{% endif %}" это то, что будет если true первый if и то, что будет после else?

Kirill
04.10.2018
11:00:08

Egor
04.10.2018
11:01:03

Andrei
04.10.2018
11:01:27

Victor
04.10.2018
11:01:32
Хотя судя по контексту - p - Production

Andrei
04.10.2018
11:03:23

Egor
04.10.2018
11:03:27

Victor
04.10.2018
11:05:46

Artur
04.10.2018
15:43:15
привет.
с чем может быть проблема.
есть хост в заббиксе. при выполнение плейбука есть такое
- name: Add link to backup template
local_action:
module: zabbix_host
state: present
status: enabled
server_url: https://{{ zabbix_server }}
login_user: "{{ zabbix_server_login }}"
login_password: "{{ zabbix_server_password }}"
host_name: "{{ ansible_hostname }}"
link_templates:
- Template Backup
become: no
линк на шаблон создаётся, но при этом затираются все остальные линки

D
04.10.2018
15:52:26
Так работает этот модуль, нужно перечислять все линки

Artur
04.10.2018
15:56:32
This module allows you to create, modify and delete Zabbix host entries and associated group and template data
говорят модифицировать может. или это такое странное понятие модификации у них ?
да и пример есть обновления

D
04.10.2018
16:04:09
Нет нормальное, а как ты этим модулем уберешь лишние шаблоны с хоста? Ну и в общем ансибл хранит стейт, т.е. к этому стейту ты приводишь хост

Google

Artur
04.10.2018
16:05:24
убирать то и не требуется. я хочу добавить линк к существующим

D
04.10.2018
16:10:49
я про гипотетический случай)
в общем с такой работой модуля сам столкнулся, если дойдут руки, попробую пулреквест на изменение этого поведения сделать

Terminator
04.10.2018
17:14:35
@longbow будет жить. Поприветствуем!
@kvaps будет жить. Поприветствуем!

kvaps
04.10.2018
18:12:36
Парни подскажите как можно извлечь n первых элементов из списка, есть метод какой?
где n - это переменная

Wom
04.10.2018
18:18:23
https://stackoverflow.com/questions/46553820/get-first-n-elements-of-a-list-in-jinja2-template-in-ansible

kvaps
04.10.2018
18:22:17
циклом можно, да
в идеале, хочется как-нибудь range из переменной подставить, типа
my_list[range]
где range="0:3"

Wom
04.10.2018
18:23:51
ты же про jinja таки спрашиваешь?

kvaps
04.10.2018
18:25:31
ага

Wom
04.10.2018
18:26:26
ну так и делай фильтрами

kvaps
04.10.2018
18:26:53
каким например?

Wom
04.10.2018
18:31:51
my_list[range]

kvaps
04.10.2018
18:34:02
так range - это переменная, верент ошибку типа elment not found
пока сделал так, но чет это говно какое то :-/
- hosts: localhost
tasks:
- debug:
var: myslice
vars:
my_list:
- a
- b
- c
- d
- e
elements: 3
myslice_str: "{% for i in range(elements | int) %}{{ my_list[i] }} {% endfor %}"
myslice: "{{ (myslice_str | trim).split(\" \") }}"

bebebe
04.10.2018
18:58:00

kvaps
04.10.2018
18:58:32
не канает, 2 - переменная

Google

Admin
ERROR: S client not available

bebebe
04.10.2018
18:59:05
не канает, 2 - переменная
---
- hosts: localhost
vars:
foobar:
- 1
- 2
- 3
- 42
n: 2
gather_facts: false
tasks:
- debug:
var: foobar[0:n]

kvaps
04.10.2018
18:59:54
o__O
странно, почему у меня не сработало
bebebe спасибо, это было просто)

bebebe
04.10.2018
19:00:40
обычно в этом месте уточняют версию ansible

kvaps
04.10.2018
19:01:13
не, твой плейбук работает, эт я значит где-то накосячил

Wom
04.10.2018
19:01:41
о как таки правильно

kvaps
04.10.2018
19:05:49
моя ошибка была в неприведении типов
slice indices must be integers or None or have an __index__ method
myarr[0:(variable | int)] так работает

bebebe
04.10.2018
19:10:22
да, есть такая неприятность


Andrei
05.10.2018
07:50:44
ребята, как правильно посчитать яблоки?
- set_fact:
fruit_box: "[ 'апельсин', 'яблоко1', 'яблоко2', 'банан', 'киви', 'яблоко3']"
- debug:
msg: "{{ item }}"
with_items: "{{ fruit_box}}"
- name: Get number of apples.
set_fact:
apple_counter: "{% if 'яблоко' in item %}{{ apple_counter = apple_counter + 1 }}{% endif %}"
with_items: "{{ fruit_box }}"
- name: "apple_num"
debug:
msg: "{{apple_counter}}"
ошибка "template error while templating string: expected token 'end of print statement', got '='. String: {% if 'яблоко' in item %}{{ apple_counter = apple_counter + 1 }}{% endif %}"}
а, сделал)
vars:
apple_counter: 0
tasks:
- set_fact:
fruit_box: "[ 'апельсин', 'яблоко1', 'яблоко2', 'банан', 'киви', 'яблоко3', 'яблоко4']"
- name: debug err_lines2
debug:
msg: "{{ item }}"
with_items: "{{ fruit_box}}"
- name: Get number of apples.
set_fact:
apple_counter: "{% if 'яблоко' in item %} {% set apple_counter = apple_counter|int + 1 %} {% endif %}{{apple_counter}}"
with_items: "{{ fruit_box }}"
- name: "apple_num"
debug:
msg: "{{apple_counter}}"
сюда написал и мысль пришла


Vadim
05.10.2018
07:57:16
{{ fruit_box|select("equalto", "яблоко") | length }}

bebebe
05.10.2018
07:58:59
пришел лесник и всех разогнал (с)

Andrei
05.10.2018
08:02:00

Vadim
05.10.2018
08:02:42
чтите документацию

Matvey
05.10.2018
09:09:39
почему при хранении инвентори в отдельных директориях не подтягиваются групповые переменные из "корня"?
типа хосты в project/inventory/dev/hosts.ini, а переменные в project/group_vars/all/common.yml

Google

Алексей
05.10.2018
09:11:22
https://github.com/ansible/ansible/blob/stable-2.7/changelogs/CHANGELOG-v2.7.rst

Victor
05.10.2018
09:17:25

Matvey
05.10.2018
09:26:11
што
я хочу определить некоторые "глобальные" групповые переменные, и не дублировать их в каждом inventory/{dev,staging,production}

Victor
05.10.2018
09:29:28

Matvey
05.10.2018
09:29:49
project/inventory/dev/hosts.ini

Victor
05.10.2018
09:29:58
папка с инвентори

Matvey
05.10.2018
09:30:08
мамка

Victor
05.10.2018
09:30:13
директория