Anna
плейбуки все в домашнем каталоге /home/ansible
Anna
эта конструкция sudo -u ansible
Anna
не дает полноценно стать пользователем ansible
Sebor▂▅▇█▓▒░
Инвентори обычно в (другой) репе лежит, либо динамический
Ну и плейбуки тоже лучше хранить в репозитории, а не на сервере с раннером
Max
А где можно почитать про бест практикс организации самописных плейбук и ролей?
Инвентори один на всех или на каждую роль свой? А волт?
Роли пишу для раскатывания сервера.
George
George
или вероятно нужен ключ sudo -i -u ansible
Max
George
George
В том плане, что инвентори - можно организовать по-разному )
George
Кому-то удобнее делать один на все хосты, но дождаться выполнения ансибла на 500 узлов - такое себе
George
Кому-то удобнее на каждую среду отдельный инвентори, изоляция сред, в конце концов )
Max
Sebor▂▅▇█▓▒░
George
Дык а зачем на всех? Лимиты
У тебя blast radius в случае инвентори на все узлы = вся инфраструктура, как-то рискованн, одна ошибка. Кирдык )
George
George
George
Зависит, наверное, от степени переиспользования. Мне лично первый вариант нравится больше - тогда проще тестировать как будто и роли отчуждать (мало ли в интернете захочешь публиковать )
George
Sebor▂▅▇█▓▒░
George
Ну, на 500 узлов сто пудов будут ошибки применения плеев
George
Это стремает. А immutable - сломалось, перезалил пачкой ) ноу проблем
Sebor▂▅▇█▓▒░
Не ошибается тот, кто ничего не делает
Sebor▂▅▇█▓▒░
Sebor▂▅▇█▓▒░
А перезалить что? Всю систему? Не у всех облака, а некоторые даже и виртуалки могут не использовать...
Max
Я чет с этими всеми относительными ссылками - тот вартант и вот этот, ничего не понял.
Куда инвентори и волты девать?
Для каждой роли свой или в отдельную репу гит и при деплое сервера клонить репы с инвентори и нужными ролями?
GithubReleases
ansible/ansible tagged: v2.10.1rc3
Link: https://github.com/ansible/ansible/releases/tag/v2.10.1rc3
Release notes:
New release v2.10.1rc3
Fire
Fire
Было и так, что под определённые нужды делали свой инвентори, но, обычно, это, потом, никто не поддерживает.
Max
Кто пользовался модулем base64, подскажите, почему оно не работает?
есть бинарь (vnc сервер захешировал пароль). его кодируем в base64. потом в плейбуке по коду base64 восстанавливаем бинарь.
но почему-то восстанавливается не то, что должно.
вот пример. первый раз кодируем оригинальный файл, второй раз кодируем файл, который сгенерировал ансибл. как видим, хэши разные, т.е. исходный файл тоже разный. чек суммы если считать, тоже разные.
[root@monitoring-pc ~]# base64 /etc/x11vnc.pass
hcgeZyKT+IY=
[root@monitoring-pc ~]# base64 /etc/x11vnc.pass
77+977+9Hmci77+977+977+9
ansible-playbook --version
ansible-playbook 2.9.13
config file = /etc/ansible/ansible.cfg
configured module search path = [u'/home/support/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python2.7/dist-packages/ansible
executable location = /usr/bin/ansible-playbook
python version = 2.7.17 (default, Jul 20 2020, 15:37:01) [GCC 7.5.0]
всё делаю парой таких тасков.
- name: Render x11vnc password file. Part 1
set_fact:
string_in_base64: 'hcgeZyKT+IY='
tags: try
- name: Render x11vnc password file. Part 2
copy:
dest: "/etc/x11vnc.pass"
content: '{{ string_in_base64 | b64decode }}'
tags: try
я читал, что в python2 есть баг по этому поводу. поэтому на целевой машине применяю python3
[all:vars]
ansible_python_interpreter=/usr/bin/python3
Max
я думаю уже, может оно из-за кодировок бьётся? потому что текстовый файл не бьётся. но нахрена мне текст в base64, если он для бинарей сделан?
# cat /etc/x11vnc.pass
�� g"���
Max
Кто пользовался модулем base64, подскажите, почему оно не работает?
есть бинарь (vnc сервер захешировал пароль). его кодируем в base64. потом в плейбуке по коду base64 восстанавливаем бинарь.
но почему-то восстанавливается не то, что должно.
вот пример. первый раз кодируем оригинальный файл, второй раз кодируем файл, который сгенерировал ансибл. как видим, хэши разные, т.е. исходный файл тоже разный. чек суммы если считать, тоже разные.
[root@monitoring-pc ~]# base64 /etc/x11vnc.pass
hcgeZyKT+IY=
[root@monitoring-pc ~]# base64 /etc/x11vnc.pass
77+977+9Hmci77+977+977+9
ansible-playbook --version
ansible-playbook 2.9.13
config file = /etc/ansible/ansible.cfg
configured module search path = [u'/home/support/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python2.7/dist-packages/ansible
executable location = /usr/bin/ansible-playbook
python version = 2.7.17 (default, Jul 20 2020, 15:37:01) [GCC 7.5.0]
всё делаю парой таких тасков.
- name: Render x11vnc password file. Part 1
set_fact:
string_in_base64: 'hcgeZyKT+IY='
tags: try
- name: Render x11vnc password file. Part 2
copy:
dest: "/etc/x11vnc.pass"
content: '{{ string_in_base64 | b64decode }}'
tags: try
я читал, что в python2 есть баг по этому поводу. поэтому на целевой машине применяю python3
[all:vars]
ansible_python_interpreter=/usr/bin/python3
похоже всё-таки от Python2 надо отказаться и на ведущей и на ведомой машине.
https://stackoverflow.com/questions/58840430/how-to-decode-a-base64-var-to-a-binary-file-with-ansible-module
Alex
Отделение Bereke Bank
Полина
Привет.
Я поставила ansible 2.9.13 в venv (python 3.8.2) и скопировала туда hosts файл со старого сервера (a-2.5, p-2.7). После чего новый ansible ругается на то что не может прочитать инвенторный файл.
[WARNING]: * Failed to parse /home/appliance/venv_ansible/ansible/hosts with yaml plugin: We were unable to read either as JSON nor YAML, these are the errors we got from each: JSON: Expecting
value: line 1 column 1 (char 0) Syntax Error while loading YAML. expected '<document start>', but found '[' The error appears to be in '/home/appliance/venv_ansible/ansible/hosts': line 97,
column 1, but may be elsewhere in the file depending on the exact syntax problem. The offending line appears to be: [<g_name>] ^ here
При этом команда ansible выполняется. Как такое можно исправить?
Max
RHEL 6/7 смотрят на тебя с недоумением ))
в данном конкретном случае мастер машина на ubuntu 18.04, где питон2 по дефолту, целевая centos 8.
я бы и не выкидывал питон2, если бы не проблемы от этих гетерогенных систем и переездов.
Max
Полина
hosts файл выгладит так -
Полина
Alex
добавь в ansible.cfg
[inventory]
enable_plugins = ini, yaml, auto, host_list, script
Полина
Я понимаю эту ошибку как то что ansible не умеет читать ini, а только json с yml. Однако, по спецификации, это не так
Fire
Alex
Полина
Вот. Поэтому мне и не понятна эта ошибка. Хотелось бы избавиться от нее. И о пары других
Anna
подскажите, деплой статических сайтов тоже делаете deploy_helper или просто из каталога сайте git checkout модулем git (но тогда много секретных лишних файлов в каталоге.
George
деплой статики - если процесс отличный от гитлаб пейджес, то вычищаешь секретную инфу
George
если gitlab pages - там можно положить только нужные файлы в каталог, которые уйдут в веб сервер через артефакты
Vladimir
Коллеги, кто-нибудь сталкивался с таким? Подскажите пжлст, куда копать.
Установил роли из requirements.yml, запускаю плейбук, а он каждой таске присваивает имя тасков из роли ntp и, похоже, выполняет ее по кругу.
TASK [repos : Set the ntp_package variable.]
TASK [repos : Set the ntp_config_file variable.]
TASK [repos : Ensure NTP package is installed.]
TASK [repos : Ensure tzdata package is installed (Linux).]
...
TASK [openssh : Set the ntp_package variable.]
TASK [openssh : Set the ntp_config_file variable.]
TASK [openssh : Ensure NTP package is installed.]
TASK [openssh : Ensure tzdata package is installed (Linux).]
...
TASK [sudo : Set the ntp_package variable.]
TASK [sudo : Set the ntp_config_file variable.]
TASK [sudo : Ensure NTP package is installed.]
TASK [sudo : Ensure tzdata package is installed (Linux).]
Anna
George
ну, вообще - проще сложить все артефакты в отдельный каталог и не вычищать ничего ) любой же статик сайт билдер имеет опцию -output-dir или аналогичную
Отделение Bereke Bank
Anna
вообще все после билда лучше перености на целевой сервер в архиве? а то у нас модулем copy, для больших сайтов ну очень долго. Или может модуль синхронизации? как рекомендуется?
Dmitriy
в свое время для таких деплоев использовал ansistrano, где удобно было вносить изменения в процесс деплоя
Полина
Имя группы в инвентарном файле может начинаться с цифры?
George
George
можете критерии рассказать ? ограничения ? архивы сколько МБ? Скорость деплоя какая нужна? ZTD нужен ?
Fire
Fire
Fire
Vladimir
😊
Fire
Vladimir
Мы друг друга не понимаем.
Доберусь до компа, скину содержимое ролей
Vladimir
Т.е. а ролях таски разные, а выполняются одинаковые по кругу
George
криво заинклюдили, что ли ?
i4l
чёрт постоянно жалею что некогда смотреть в канал
Отделение Bereke Bank
Alesha
вопрос, winrm через socks4 доменная авторизация
машина с ансиблом не в домене
Alesha
как получить токен через керберос без доступа к dc?
Alesha
или ntlm
Кирилл
Добрый вечер.
Подскажите плз, в какой среде обычно тестируют ansible playbook ?
docker ?
Yuriy
Кирилл
George
George
Системди в докере тестировать так себе
Кирилл