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 }}"
Sergey
Victor
Anonymous
:3
Kirill
а вот с такой задачей посоветуйте куда копать: https://bpaste.net/show/8efa5dbf2a95
Victor
Victor
или там тоже по разному?
Kirill
всегда по разному
Kirill
но всегда количество certs/etc/node{1...n} == sre-k8s-1-{1...n}
Victor
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
не суть, я пока вижу два (три) варианта, и все они (нет) довольно костыльные.
можно определять номер хоста в группе, ставить ему факт (или не ставить) и уже по этому номеру выдавать ему сертификат, но будут проблемы при удалении хостов из группы.
можно в инвентори писать какой нодой конкретно этот хост является.
или выдавать сертификаты не по номеру ноды, а по названию сервера
Victor
Kirill
@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
Nick
Kirill
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 без изменений.
Victor
Bandikoot
за время "работы" я бы мог спуститься с 5 этажа, сбегать за кофе через дорогу, попить кофейку, сам залезть на хосты и сделать sudo yum install )
Egor
Egor
... --limit webservers[0:9]
... --limit webservers[10:20]
Vitaly
Bandikoot
да, похоже, дело в самом yum. на части хостов нашёл кривые репы, к которым долго ждать отвала коннекта по таймауту
Bandikoot
т.е. тупит и при прогоне установки руками
Vitaly
Угу
Bandikoot
зеркало уже своё, на стенде
Alexander
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 и выполнить вторую таску, если не существует файла
Rishat
Asten
Huan
Victor
Huan
Huan
Про девел уже знаю, но когда выйдет 2.7?)
Terry
Terry
гитхаба
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 сделает
Victor
inqfen
В сторонних репах всякое бывает
inqfen
А в оф репу вроде не добавят если криво пакет оформил
Constantin
Всем привет, я правильно понимаю, что в jinja нельзя сделать break в цикле?
Victor
inqfen
Кто знает, модуль script работает с относительными путями? Или вообще без пути, если скрипт в files лежит?
Victor
inqfen
уже, работает если в файлы положить
Victor
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
Danila
Сегодня чатик спас еще одну невинную душу без интернета, так держать.