Victor
кому охота красноглазить $ ansible-playbook ./test.yml -e "{'aa':{'bb': { 'cc': ['d', 'e']} }}" PLAY [localhost] **************************************************************************************************************************************************** TASK [debug] ******************************************************************************************************************************************************** ok: [localhost] => { "msg": "Oh my... {u'bb': {u'cc': [u'd', u'e'], u'dd': u'g'}}" } PLAY RECAP ********************************************************************************************************************************************************** localhost : ok=1 changed=0 unreachable=0 failed=0 $ cat ./test.yml - hosts: localhost connection: local vars: aa: bb: dd: g tasks: - debug: msg: "Oh my... {{ aa }}"
Alex
Оно, блин, не работает так))
перезаписывает всю переменную? ну да hash_behavior, но лучше не использовать такие переменные
Anonymous
:3
Kirill
а вот с такой задачей посоветуйте куда копать: https://bpaste.net/show/8efa5dbf2a95
Victor
или там тоже по разному?
Kirill
всегда по разному
Kirill
но всегда количество certs/etc/node{1...n} == sre-k8s-1-{1...n}
Victor
но всегда количество certs/etc/node{1...n} == sre-k8s-1-{1...n}
У тебя хосты в группе k8s_cluster_name ?
Kirill
в группе [kube-node]
Nick
Коллеги, помогите ламеру я же могу использовать список, полученный с помощью split в with_items? vars: services: "{{ lookup('env','MYLIST') }}" servicelist: "{{ services.split(',') }}" ... - name: print list debug: msg: "{{ item }}" with_items: "{{ servicelist }}" или это не так делается? сам список нормально создается к моменту with_items он [u'Service1', u'Service2', u'Service3']
Victor
не суть, я пока вижу два (три) варианта, и все они (нет) довольно костыльные. можно определять номер хоста в группе, ставить ему факт (или не ставить) и уже по этому номеру выдавать ему сертификат, но будут проблемы при удалении хостов из группы. можно в инвентори писать какой нодой конкретно этот хост является. или выдавать сертификаты не по номеру ноды, а по названию сервера
Kirill
@v_litvin а как по первому варианту, сможешь накидать?
Victor
@v_litvin а как по первому варианту, сможешь накидать?
а смысл? Имхо это очень сложно потом будет воспринимать.
Victor
И как я писал проблемы при удалении/добавлении
Nick
выглядит нормально
я тоже так думал ansible 2.6.4 tasks: - name: debug debug: msg: "{{ todohost }} ### {{ services }} ### {{ servicelist }}" - name: print services debug: msg: "{{ item }}" with_items: "{{ servicelist }}" выводит TASK [debug] ****************************************************************************************************************************************************************************************** ok: [localhost] => { "msg": "ServerName ### Service1,Service2,Service3 ### [u'Service1', u'Service2', u'Service3']" } TASK [print services] ********************************************************************************************************************************************************************************* fatal: [localhost]: FAILED! => {"msg": "The task includes an option with an undefined variable. The error was: 'item' is undefined\n\nThe error appears to have been in '/home/ansible/playbooks/test.yml': line 14, column 15, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n\n - name: print services\n ^ here\n"}
Victor
а вот с такой задачей посоветуйте куда копать: https://bpaste.net/show/8efa5dbf2a95
Или если нейминг позволяет то по регекспе выделять последнюю цифру в названии сервера и ориентироваться на неё
Nick
у тебя with_items в debug, а не в таске
тысяча благодарностей )
Victor
спасибо, попробую
главное про идемпотентность не забывай
Bandikoot
Коллеги, мб кто сталкивался — по каким причинам может на части хостов залипать таска установки пакетов через yum? Дано: - name: Installing zabbix packages yum: pkg={{ item }} state=latest update_cache=yes disable_gpg_check=yes with_items: - ... - ... - ... Плей в 50 потоков идёт ровно-хорошо, но под конец проката этой таски остаётся где-то 1% хостов, на которых вызов /usr/bin/python /tmp/ansible_gAdHoy/ansible_module_yum.py висит неприемлимо длительное время. Если очень подождать, всё же вываливается в ok без изменений.
Bandikoot
за время "работы" я бы мог спуститься с 5 этажа, сбегать за кофе через дорогу, попить кофейку, сам залезть на хосты и сделать sudo yum install )
Egor
... --limit webservers[0:9] ... --limit webservers[10:20]
Bandikoot
да, похоже, дело в самом yum. на части хостов нашёл кривые репы, к которым долго ждать отвала коннекта по таймауту
Bandikoot
т.е. тупит и при прогоне установки руками
Vitaly
Угу
Vitaly
т.е. тупит и при прогоне установки руками
Если серверов хотябы 25-50 имеет смысл подумать о своем зеркале
Bandikoot
зеркало уже своё, на стенде
Asten
Serial 50% Решает
А если хостов 5 он 2 или 3 сделает?
Rishat
Ребят, а ansible может сам взять мой id_rsa.pub и добавить на хост?
Huan
подскажите плз, как запилить кондишн: - name: check if private key exist stat: path={{ cert_dir }}/{{ item }}.key delegate_to: "{{ groups['master'][0] }}" with_items: - ca - apiserver - front-proxy-ca - front-proxy-client - service-account - "{{ groups['all'] }}" register: private_key - name: generate CA private key shell: openssl genrsa -out {{ cert_dir }}/{{ item }}.key 2048 delegate_to: "{{ groups['master'][0] }}" with_items: - ca - apiserver - front-proxy-ca - front-proxy-client - service-account when: private_key.results['stat']['exists'] == False нужно проверить существует ли каждый item и выполнить вторую таску, если не существует файла
niko
Ребят, а ansible может сам взять мой id_rsa.pub и добавить на хост?
https://docs.ansible.com/ansible/2.5/modules/authorized_key_module.html#authorized-key-module
Victor
Подскажите как этим модулем сделать CA сертификат?
Сделать CA - сертификат руками, подписывать им. Провайдер для openssl_certificate появился в ansible-devel
Huan
Про девел уже знаю, но когда выйдет 2.7?)
Terry
гитхаба
Victor
в этом и дело, что нужен свой СА и этим СА надо подписывать другие сертификаты
Ну дебопс.пки много че делает, заводит ЦА, правда без рабочего СRL, генерит сертификаты, заливает на хосты, добавляет куда залил твой ца в доверенные.
Victor
в пипе девел тоже есть
Huan
Что за дебопс.пки? Кинь плз ссылку
Victor
https://docs.debops.org/en/master/ansible/roles/debops.pki/index.html
Huan
Спс, попробую. А то на работе поставили задачу все через ансибл делать...
Victor
Частично на нем сижу. Частично на летсэнкрипте.
inqfen
Всем дратути
inqfen
Есть такой вопрос, можно ли как-то дропнуть базу postgres модулем postgresql_db принудительно, вне зависимости от коннектов к ней?
Dok
Рыбят, не могу monit нотифаем перезапустить. Пробовал сам, смотрю, как у других, но всё так же выкидывает со словами The requested handler 'reload monit' was not found in either the main handlers list nor in the listening handlers list А, вроде бы, обычное условие notify: - reload monit Написано корректно. monit.service тоже не подходит
Vadim
А хендлер ты создал?
Dok
Боюсь, что нет.. и дошёл до этой темы
Dok
Всё как-то без них жил)
Dok
Сделал. Спасибо)
Terry
сорян не туда)
Павел
Товарищи, я же правильно понимаю, что, если я удаляю пакет с помощью yum state=absent, если приложение в данный момент работает, мне сначала нужно сделать systemd state=stopped, иначе приожение так и продолжит работать?
Vitaly
Смотря как пакет написан )
Vitaly
Если майнтейнер панета нормальный, он остановку сервиса в preuninstall сделает
Павел
Если майнтейнер панета нормальный, он остановку сервиса в preuninstall сделает
Ну то есть, есть yum-cron. На новых серверах мне нужно его останавливать и удалять.
Victor
Если майнтейнер панета нормальный, он остановку сервиса в preuninstall сделает
+ 1 этому человеку. В моём уютном дебиане мейнтейнеры заботятся.
inqfen
В сторонних репах всякое бывает
inqfen
А в оф репу вроде не добавят если криво пакет оформил
Vitaly
Ну то есть, есть yum-cron. На новых серверах мне нужно его останавливать и удалять.
Посмотрите содержимое rpm, описанно ли там остановка сервиса. С другой стороны предварителная остановка сервиса решение универсальное.
Constantin
Всем привет, я правильно понимаю, что в jinja нельзя сделать break в цикле?
inqfen
Кто знает, модуль script работает с относительными путями? Или вообще без пути, если скрипт в files лежит?
Victor
Кто знает, модуль script работает с относительными путями? Или вообще без пути, если скрипт в files лежит?
напиши белиберду @ посмотри в выхлоп анзибла, там по идее должно быть где он искал его, но не нашел.
inqfen
уже, работает если в файлы положить
Huan
подскажите как исправить ошибку: - name: create CA selfsigned certificate openssl_certificate: path={{ cert_dir }}/ca.crt csr_path={{ cert_dir }}/ca.csr provider=selfsigned выдает ошибку: An exception occurred during task execution. To see the full traceback, use -vvv. The error was: TypeError: coercing to Unicode: need string or buffer, NoneType found
Sergey
подскажите как исправить ошибку: - name: create CA selfsigned certificate openssl_certificate: path={{ cert_dir }}/ca.crt csr_path={{ cert_dir }}/ca.csr provider=selfsigned выдает ошибку: An exception occurred during task execution. To see the full traceback, use -vvv. The error was: TypeError: coercing to Unicode: need string or buffer, NoneType found
Ты пишешь YaML странным способом. Не надо так. Для начала прочти вот тут - https://docs.ansible.com/ansible/latest/reference_appendices/YAMLSyntax.html#gotchas, потом подумай, почему у тебя выражения шаблонизатора с фигурными скобками не в кавычках, потом перепиши это в нормлаьный YaML. Всё должно заработать нормально.
Danila
Сегодня чатик спас еще одну невинную душу без интернета, так держать.