
Алексей
01.07.2017
15:20:56
дак удалить не проблема. проблема в том что после удаления плейбук снова неидемпотентный

Dmitry
01.07.2017
15:21:00
Господи этих создавалок репы и подписывальщиков пакетов стопицот штук. На любой вкус.
Ребутить тачку ради всякой херни - опять девопсятиной запахло :)

lastsky
01.07.2017
15:22:34
можно на таски распаковки/чистки вешать changed_when: no

Google

lastsky
01.07.2017
15:24:20
вом как и 10 лет назад прикалывается над крайними вариантами ))

Wom
01.07.2017
15:24:52
:)

Алексей
01.07.2017
15:25:10

Wom
01.07.2017
15:25:37

Алексей
01.07.2017
15:25:59
нет. приватное

lastsky
01.07.2017
15:26:12
selectel! selectel!

Wom
01.07.2017
15:32:21
хм. а использование changed_when для достижения индемпотентности не является ли костылём?

lastsky
01.07.2017
15:33:06
является костылём, безусловно и однозначно.

Wom
01.07.2017
15:33:27
failed_when: >
psql_result.rc != 0 and (("already exists" not in psql_result.stderr) and ("read-only transaction" not in psql_result.stderr))
changed_when: "psql_result.rc == 0"
но вот без этого никак

lastsky
01.07.2017
15:34:45
я применяю changed_when только на прикладных задачах которые не влияют на сервис + от которых не зависят хендлеры. тоже замаялся катать большие плеи и потом разбираться "какого хера". их можно в pre_tasks / post_tasks же запихать.

Dmitry
01.07.2017
15:52:19

lastsky
01.07.2017
16:19:14
хорошее замечание. если собирает и катает пакеты одна команда - проблем в N раз меньше.

Google

Bogdan
03.07.2017
08:48:47
Камрады, что сделать, чтоб
local_action: copy content={{item.path}} dest=/tmp/find.result.txt
не перезатирал файл, оставляя только последнее значение?

Vladimir
03.07.2017
08:56:26
Может использовать lineinfile? Если я правильно вопрос понял

Bogdan
03.07.2017
09:08:25
полностью оно выглядит так:
- find:
paths: "/var/www"
patterns: "*.sql"
recurse: yes
register: find_result
- local_action: copy content={{item.path}} dest=/tmp/find.result.txt
with_items: "{{ find_result.files }}"
но в результате я в dest файле вижу только последний найденый файл

lastsky
03.07.2017
09:13:17
открыть доку по модулю
force:
the default is yes, which will replace the remote file when contents are different than the source. If no, the file will only be transferred if the destination does not exist.
aliases: thirsty
а, тебе список надо
with_items: "{{ find_result.stdout_lines }}"

Bogdan
03.07.2017
09:31:02
не взлетает: 'dict object' has no attribute 'stdout_lines'

Kirill
03.07.2017
09:56:06
Ибо content в copy не дописывает, а переписывает :))

Dmitry
03.07.2017
09:57:29
опять программирование на конфигах? :)

Kirill
03.07.2017
09:57:46
Добавляй в лог через local-action: lineinfile

Bogdan
03.07.2017
10:17:36
ога, так и сделал

Pavel
03.07.2017
10:21:41
кстати ребят, а как нынче разворачивается percona 5.7? У ансибл был модуль mysql, но он с 5.7 не пашет, т.к. там пароль автогенерится и пихается в логи. А парсить их ну совсем некаеф.

lastsky
03.07.2017
10:26:11
в доке модуля find кстати описан случай лучших практик - нашел файлы и сделай с ними что-нибудь :)

Dmitrii
03.07.2017
10:32:55

Pavel
03.07.2017
10:42:12

Dmitrii
03.07.2017
10:42:43
Ну хорошо же вроде начали

Dmitry
03.07.2017
10:43:50
напомните, что я тогда сказал про редхатобояр с их говном rpm? :D пусть сами у себя ищут, им виднее? :)

Google

Dmitry
03.07.2017
10:44:17
про shell export это имхо не мое :)

Pavel
03.07.2017
10:44:42
Согласен про редхат, но ынтырпрайз
Не мои хотелки :(
Хоть в контейнере разворачивай, ей богу

Dmitry
03.07.2017
10:47:46
так и сделал однажды :) досталось легаси... посмотрел, охренел, засунул все это говно в LXC контейнер и забыл

Pavel
03.07.2017
10:49:05
Ггггггг

Sergey
03.07.2017
10:52:34
"редхатобояре" == улыбнуло

Dmitry
03.07.2017
10:56:13
Ггггггг
там была какая-то дичь с чуть ли не самопалом + старинная centos, причем на новой этот полусамопал не запускался. аж запустить НЕ на центосе - у меня зубы заболели и я сложил как есть

Pavel
03.07.2017
11:06:44
знакомо, так на старом редхзате пришлось libres3 запускать.. но вот совсем не охота также со скулом поступать
поэтому пока сижу на 5.5

Dmitrii
03.07.2017
11:17:29

Dmitry
03.07.2017
11:23:39
последние :) про пароли

Dmitrii
03.07.2017
11:26:39
Блеать. Да

Bogdan (SirEdvin)
03.07.2017
11:32:36
Кстати, может кто знает. Папка filter_plugins работает на уровне ролей?
Да, таки работает, круто! Наконец-то можно будет выпилить столько костылей)
Ну или добавить, разумеется)
В целом, я заново открыл для себя мир программирования на конфигах)

lastsky
03.07.2017
19:14:38
господа, а кто как описывает Ansible в нормативке? я тут пошел в википедию, и получилось что Ansible - это СУК и УВО с ОИК.
Ansible (программа) — система управления конфигурациями и удалённого выполнения операций с открытым исходным кодом.
система централизованного управления конфигурациями - ещё неприличнее будет.

Google

lastsky
03.07.2017
19:16:30
а. вот. вспомнил, это же просто СУ. спасибо :)

Pavel
03.07.2017
19:16:58
система централизованного управления конфигурациями организации!

lastsky
03.07.2017
19:43:33

Sergey
04.07.2017
07:30:51

Admin
ERROR: S client not available

Zhenia
04.07.2017
08:00:09
Чат, а есть возможность вытянуть Host Variables, если я хосты получаю через
with_items:
- "{{ groups['prod'] }}"

lastsky
04.07.2017
08:05:28
а почему нет?

Zhenia
04.07.2017
08:05:47
А подскажи как, а то я понять не могу

lastsky
04.07.2017
08:05:48
тебе пример?

Zhenia
04.07.2017
08:05:57
да, буду благодарен

lastsky
04.07.2017
08:06:51
"{{ hostvars[item].internal_ip_storage }}"
соответственно, inventory:
ansible_host=logger_3 internal_ip_storage=192.168.210.4

Zhenia
04.07.2017
08:07:27
спасибо

lastsky
04.07.2017
08:08:16
я вот исползую такую штуку минимум в 2 местах
за год проблем не было
https://github.com/lastsky/ansible/blob/master/playbook-hosts.yml#L39
ну и ещё iptables на ней строю всегда, оч. удобно

Alibek
04.07.2017
12:21:02
Всем добра! Ansible выкидывает ошибку при развертывании на этом файле https://github.com/mrlesmithjr/ansible-mariadb-galera-cluster/blob/master/tasks/update_etc_hosts.yml:
The error was: 'dict object' has no attribute u'ansible_eth0' - при том, что атрибут в hostvars есть
Если кто наталкивался на подобное, как решали и как решили?

lastsky
04.07.2017
12:24:28
а вот gather_facts: yes поставь и сходи ansible all -m setup - там есть вообще ansible_eth0?

Google

Matvey
04.07.2017
12:25:43
может какой-нибудь ens192

Alibek
04.07.2017
12:26:52

lastsky
04.07.2017
12:29:00
тогда ставь между тасками debug var=myvar и смотри где опять сломался http://docs.ansible.com/ansible/playbooks_variables.html#variable-precedence-where-should-i-put-a-variable )
уже три или четыре раза его ломали. я заебался, честно говоря, и определяю переменные в одном месте. посмотрим что будет через год.

Ascandar
04.07.2017
12:31:13
я использую так
ansible_default_ipv4.address
выше который у меня не получилось

Alibek
04.07.2017
12:31:58
мля... сейчас убрал —limit на один хост - оно выполнилось...
TASK [r.mariadb : update_etc_hosts | Updating /etc/hosts For Name Resolution] *********************************************************************************************************************************************************
ok: [db01-corp] => (item=db01-corp)
changed: [db02-corp] => (item=db01-corp)
changed: [db03-corp] => (item=db01-corp)
changed: [db02-corp] => (item=db02-corp)
changed: [db01-corp] => (item=db02-corp)
changed: [db03-corp] => (item=db02-corp)
changed: [db02-corp] => (item=db03-corp)
changed: [db01-corp] => (item=db03-corp)
changed: [db03-corp] => (item=db03-corp)

lastsky
04.07.2017
13:50:16
кстати тут спрашивали почему рандомно отпадают узлы иногда при выполнении длинных плейбуков
i have a fix!
gather_timeout=60 в ansible.cfg
ну и вагон багов, соответственно. https://github.com/ansible/ansible/issues/17316

Wom
04.07.2017
13:58:50
fact_caching кто-нибудь использует?

Evgeny
04.07.2017
13:59:28
в модуле apt можно прокинуть опции для apt ? например отключить проверку сертификата Acquire::https::Verify-Peer=false - или только файлик в apt.conf.d ?