Артём
В вашем случае группа используется как неспецифичная переменная. Можно заменить на что угодно. А истинный путь - использовать группы.
Собстевнно, группами в том виде, как их понимает ansible, можно скопировать нужные скрипты в нужные группы с синтаксисом вроде
tasks:
name: copy
…
with_items: {{ list_of_scripts }}
И групповыми переменными
group_vars/group1.yml:
—
list_of_scripts:
- rsync.sh
- script1.sh
nett00n
Timur
Артём
Нет, переопределится. https://docs.ansible.com/ansible/latest/user_guide/playbooks_variables.html
Артём
А вот есть ли возможность мержить листы (в моём случае - для удобства организации очень больших листов по файлам) - мне самому интересно.
Timur
Anton
Всем привет. Подскажие пожалуйста, а роль обязательно должна лежать в корне репозитория? Хочется создать репозиторий roles и хранить в нём роли в папках.
Anton
https://docs.ansible.com/ansible/latest/reference_appendices/galaxy.html#installing-multiple-roles-from-a-file
В документации про это ни слова нет, просто все берут роли из корня репозитория или из архива.
Артём
roles_path = /wherever/you/want/them
Anton
roles_path = /wherever/you/want/them
Это что касается установленной роли. А я хочу создать репозиторий с ролями (гипотетически http://my-gitlab/infrastructure/roles) и в него складывать роли в виде папок. И тягать их из другого проекта через requirements.yml.
Артём
requirements.yml:
—
- src: git@gitlab.my.gitlab:ansible-roles/ansible-role-redis-cluster.git
name: redis
scm: git
Или я недопонял вопрос?
Anton
Anton
То есть губоко в репозитории.
Anton
Получается что ссылка на репозиторий http://my-gitlab/infrastructure/service, естественно нельзя сделать git clone http://my-gitlab/infrastructure/service/roles/msvs2013ultimate. А указав src: http://my-gitlab/infrastructure/service уже не получится выбрать что-то внутри репозитория, нет чего-то типа path. Выходит в репозитории должна просто сразу лежать роль, прямо в корне? И никак иначе?
Timur
Timur
Timur
По умолчанию ансибл берет роли либо просто из текущей директории, либо из подпапки roles в текущей директории, либо из других путей, прописанных в конфиге
Anton
А всё я разобрался, это фича mazer, а он пока ещё находится в тех превью.
manefesto
ребята, кто нибудь использовал ansible для деплоя gitlab ci ?
Anonymous
manefesto
не верно выразился, из гитлаба, на определенной stage
Anonymous
manefesto
я вот понять не могу, там ансибл есть из коробки ?
Anonymous
manefesto
смотрю гайды, и нигде не нашел apt install ansible
Anonymous
Какой у тебя тип раннера?
Anonymous
И вообще, это уже оффтоп тут, го в ЛС
manefesto
используем gitlab.com, думаю docker
George
Мы использовали предсобранный образ с ансиблом
George
И в него подкидывали (на самом деле это происходит автоматом гитлабом) плейбуки
Bandikoot
господа, а есть лёгкий способ задать в плейбуке замену всего содержимого файла? без template и shell/command
blockinfile не даёт задать "замени весь текущий текст" и переносы строк превращает в пробелы. replace никак не хочет матчить все строки разом и вставляет текст N раз (по кол-ву строк в исходном файле)
Anton
Bandikoot
Модуль copy тоже не подходит?
ну понятно, что можно copy или template. я прост надеялся, что обойдусь одним-единственным ямлом с тасками
Anton
Bandikoot
У copy есть параметр content.
🔥, то, что нужно, спасибо большое. ещё бы заставить его воспринимать содержимое параметра как multiline и совсем шикарно будет
Артём
content: |
all
your
lines
Артём
Копирует многострочно нормально.
Артём
Или вопрос был про «нельзя ли сделать all\nyour\nlines»?
Bandikoot
GithubReleases
ansible/ansible tagged: v2.8.0b1
Link: https://github.com/ansible/ansible/releases/tag/v2.8.0b1
Release notes:
New release v2.8.0b1
Max
Супер.
Max
Жду этого ga
Ivan
Конкретно чего-то?
Anton
А роли это единственный способ подключения удалённого кода? А то в роли получился один плейбук с одним таском, оверкилл...
Vladislav 👻
прям в плейбуке можете писать таску
Vladislav 👻
без роли
Anton
Говорю же, удалённый код) DRY, все дела.
Vladislav 👻
эммм
Anton
Хочу в плейбуке ссылаться на другой репозиторий. Чтобы я в десяти плейбуках мог дёргать установку visual studio так как мне надо, из экзкшника и с кучей параметров.
Vladislav 👻
я не понял, причем тут dry и что значит удаленный код?
Anton
Код, лежащий в другом месте, вообще в другом репозитории, но не на galaxy.
Anton
Грубо говоря хочу такую вот магию прямо посреди плейбука писать:
include my-gitlab/ansible/roles/msvs2013
Stan
ansible пытается импортировать плагин netaddr
установлен netaddr 0.7.5 при этом, при запуске playbook он пишет что: no module named netaddr
Vladislav 👻
Stan
почему он его не видит, что можно сделать
Stan
стоит python 2.7
Vladislav 👻
Stan
Vladislav 👻
Stan
на той же машине
Stan
те где playbook запускается, он тоже должен быть?
Vladislav 👻
и если я правильно помню, netadr должен стоять на удаленной машине, а не на локальной...
Stan
на удаленной я поставил
Roman
кто то пользуется ansible plugin для jenkins? почлучаю Failed to connect to the host via ssh: Permission denied (publickey)
хотя под этим ключем обычным агентом успешно подключаюсь.
Alexandr
Ansible умеет в dependy от других файлов, которые могут быть в git. Но я такое не проворачивал. Подробнее не скажу
Alexandr
Sergey
Sergey
Roman
В логах целевого хоста есть причины
тут дич:
Apr 16 12:10:35 test-ci-01 sshd[20976]: Accepted publickey for deploy from 172.17.66.126 port 51864 ssh2: ED25519 SHA256:[{{{{ cut key }}}}}]
Apr 16 12:10:35 test-ci-01 sshd[20976]: pam_unix(sshd:session): session opened for user deploy by (uid=0)
Apr 16 12:11:42 test-ci-01 sshd[20981]: Received disconnect from 172.17.66.126 port 51864:11: disconnected by user
Apr 16 12:11:42 test-ci-01 sshd[20981]: Disconnected from 172.17.66.126 port 51864
Apr 16 12:11:42 test-ci-01 sshd[20976]: pam_unix(sshd:session): session closed for user deploy
Sergey
Roman