Anna
плейбуки все в домашнем каталоге /home/ansible
Anna
эта конструкция sudo -u ansible
Anna
не дает полноценно стать пользователем ansible
Sebor▂▅▇█▓▒░
Инвентори обычно в (другой) репе лежит, либо динамический Ну и плейбуки тоже лучше хранить в репозитории, а не на сервере с раннером
Max
А где можно почитать про бест практикс организации самописных плейбук и ролей? Инвентори один на всех или на каждую роль свой? А волт? Роли пишу для раскатывания сервера.
George
не дает полноценно стать пользователем ansible
что значит полноценно? ну, сделай su, ok
George
или вероятно нужен ключ sudo -i -u ansible
George
В том плане, что инвентори - можно организовать по-разному )
George
Кому-то удобнее делать один на все хосты, но дождаться выполнения ансибла на 500 узлов - такое себе
George
Кому-то удобнее на каждую среду отдельный инвентори, изоляция сред, в конце концов )
Sebor▂▅▇█▓▒░
Кому-то удобнее делать один на все хосты, но дождаться выполнения ансибла на 500 узлов - такое себе
Звучит странно... Если действительно нужно на 500 хостов, то придется ждать в любом случае
George
Дык а зачем на всех? Лимиты
У тебя blast radius в случае инвентори на все узлы = вся инфраструктура, как-то рискованн, одна ошибка. Кирдык )
George
Звучит странно... Если действительно нужно на 500 хостов, то придется ждать в любом случае
Скорее не нужно, чем нужно. Обычно так проблемы с процессами залепляют )
George
А где можно почитать про бест практикс организации самописных плейбук и ролей? Инвентори один на всех или на каждую роль свой? А волт? Роли пишу для раскатывания сервера.
Насчёт организации - ну, здесь вариант роли публиковать отдельно, и в плейбуках их подключать. Либо все свалить в одно большое репо 🤷‍♂️
Sebor▂▅▇█▓▒░
Скорее не нужно, чем нужно. Обычно так проблемы с процессами залепляют )
Ну вот нет, иногда нужно. Другой вопрос, что через ансиболь такое лучше не делать
George
Зависит, наверное, от степени переиспользования. Мне лично первый вариант нравится больше - тогда проще тестировать как будто и роли отчуждать (мало ли в интернете захочешь публиковать )
Sebor▂▅▇█▓▒░
Immutable infrastructure плачет кровавыми слезами
Ну мир не чёрно-белый, к сожалению
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
Было и так, что под определённые нужды делали свой инвентори, но, обычно, это, потом, никто не поддерживает.
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
Полина
Привет. Я поставила 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, если бы не проблемы от этих гетерогенных систем и переездов.
Полина
hosts файл выгладит так -
Полина
Alex
добавь в ansible.cfg [inventory] enable_plugins = ini, yaml, auto, host_list, script
Полина
Я понимаю эту ошибку как то что ansible не умеет читать ini, а только json с yml. Однако, по спецификации, это не так
Max
похоже всё-таки от Python2 надо отказаться и на ведущей и на ведомой машине. https://stackoverflow.com/questions/58840430/how-to-decode-a-base64-var-to-a-binary-file-with-ansible-module
заменил ведущую машину с ubuntu 18.04 на centos 8 (с питон3 по дефолту) и всё поехало нормально. особенно забавно наблюдать такое: @@ -1,2 +1,2 @@ -�� -g"��� \ No newline at end of file +�� +g"��� \ No newline at end of file p.s. боже, храни stackoverflow
Полина
Вот. Поэтому мне и не понятна эта ошибка. Хотелось бы избавиться от нее. И о пары других
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
деплой статики - если процесс отличный от гитлаб пейджес, то вычищаешь секретную инфу
вычищать уже после git модуля с помощью модуля file и параметра absent?
George
ну, вообще - проще сложить все артефакты в отдельный каталог и не вычищать ничего ) любой же статик сайт билдер имеет опцию -output-dir или аналогичную
Отделение Bereke Bank
подскажите, деплой статических сайтов тоже делаете deploy_helper или просто из каталога сайте git checkout модулем git (но тогда много секретных лишних файлов в каталоге.
распаковываем архив с сайтом в папку с именем релиза (например имя тега типа v1.0.1) , меняем симлинк (он же root nginx-a) на нее, старый релиз удаляем
Anna
вообще все после билда лучше перености на целевой сервер в архиве? а то у нас модулем copy, для больших сайтов ну очень долго. Или может модуль синхронизации? как рекомендуется?
Dmitriy
в свое время для таких деплоев использовал ansistrano, где удобно было вносить изменения в процесс деплоя
Полина
Имя группы в инвентарном файле может начинаться с цифры?
George
можете критерии рассказать ? ограничения ? архивы сколько МБ? Скорость деплоя какая нужна? ZTD нужен ?
Vladimir
А что должно быть?
Я думал, роли будут по порядку устанавливаться. Нет?
Fire
Я думал, роли будут по порядку устанавливаться. Нет?
Так такси разные, по названию видно.
Vladimir
Так такси разные, по названию видно.
Вв имеете ввиду, роли разные, а таски одинаковые?
Vladimir
😊
Fire
Вв имеете ввиду, роли разные, а таски одинаковые?
А что такое роль? Это набор тасок.
Vladimir
Мы друг друга не понимаем. Доберусь до компа, скину содержимое ролей
Vladimir
Т.е. а ролях таски разные, а выполняются одинаковые по кругу
George
криво заинклюдили, что ли ?
i4l
чёрт постоянно жалею что некогда смотреть в канал
Alesha
вопрос, winrm через socks4 доменная авторизация машина с ансиблом не в домене
Alesha
как получить токен через керберос без доступа к dc?
Alesha
или ntlm
Кирилл
Добрый вечер. Подскажите плз, в какой среде обычно тестируют ansible playbook ? docker ?
George
Системди в докере тестировать так себе