Vadim
я хз, это ошибка?
половина пакетов пип хочет что-то компилить на хосте, лучше ставить пакет из дистрибутива
Алексей
но кейс интересный, можно решить написав роль для ансибла, которая ставит ансибл с зависимостями
Ставить ансибл бессмысленно т.к. он уже должен стоять для запуска. Нужны только зависимости.
Алексей
половина пакетов пип хочет что-то компилить на хосте, лучше ставить пакет из дистрибутива
в pip всё свежее, в отличии от дистрибутивных. Я ставил - пока всё компилированное ставилось. В смысле без компиляции на хосте.
Vlad
Мы собираем, при помощи pip wheel, бинарные whl пакеты и складываем в свой репозиторий
Алексей
пока нет такой острой необходимости. Но как вариант - понятен.
Alexander
Задача: залить в local PyPI все версии библиотеки с гита. Версии различать нужно по тегам. Как решил сейчас: В jenkins'е в execute shell парсю хеши коммитов ( git log --tags --decorate --simplify-by-decoration | grep ^commit.*tag | cut -d' ' -f2) и в на каждый хеш в цикле делаю git checkout commit и запускаю плейбук. Вопрос: Можно ли перенести логику чекаута в ansible а jenkins'ом только переменную хеша коммита передавать?
Alexander
@vadikgo кстати, на чём у вас репо? У нас pypiserver. Но он прост как 3 копейки, никакой админ-панели, даже удалять что - и то руками на ФС надо )
Vlad
У нас в nexus хранится
Alexander
У нас в nexus хранится
Там же что-то не очень с поддержкой pip'а: For pip versions 7 and 8 are supported https://help.sonatype.com/repomanager3/pypi-repositories#PyPIRepositories-InstallingPyPIClientTools
Alexander
Или вы через easy_install всё делаете?
Vlad
Что не очень? всё работает с pip 18
Alexander
Что не очень? всё работает с pip 18
Уже в процессе тестирования )
Alexander
Поднял nexus. Пытаюсь залить либы туда)
Alexander
@vadikgo А кроме как PyPi вы Nexus как-то утилизируете?
Vlad
да почти под всё форматы реп что он поддерживает утилизируем
Alexander
Ого.
Alexander
Мне-то кроме docker hub'а и PyPI особо ничего не требуется.
Alexander
Вас интересует - можно ли делать гит чекаут ансиблом?
Да. Не перекачивая по хешу коммита, а просто локально.
Timur
Да. Не перекачивая по хешу коммита, а просто локально.
Ну, по идее стандартный модуль умеет
Timur
https://docs.ansible.com/ansible/2.7/modules/git_module.html
Alexander
Ну, по идее стандартный модуль умеет
Локально он вроде не чекаутит. Без clone.
Timur
Локально он вроде не чекаутит. Без clone.
Чекаутит. Можно выставить параметр clone: no
Alexander
Я не могу понять, как директорию указать. В dest?
Alexander
Типа, это же не dest, это же src уже ))
Alexander
Надо проверять, в общем.
Constantin
Всем снова привет! Обновил ансибл, на OS X хосте теперь такая дичь. Таск выполняется собственно тоже на OS X хосте. You need to have PyOpenSSL>=0.15 to generate CSRs
Constantin
Кто-нибудь сталкивался?
Vlad
Ставь из brew, там все зависимости корректные
Constantin
Ну собственно я из brew и поставил, pipом уже тоже PyOpenSSL обновил до последней версии. Все на таске с модулем openssl_csr вываливается
Vladislav 👻
Стоит через пип, openssl через brew, все работает
Alexander
У нас в nexus хранится
А чем вы заливаете? У меня twine не хочет дружить с nexus P.S. Ан-нет, нашёл ошибку в URL
Евгений
Из Отуса парни пришли)
GithubReleases
ansible/ansible was tagged: v2.7.4 Link: https://github.com/ansible/ansible/releases/tag/v2.7.4 Release notes: New release v2.7.4
Constantin
Стоит через пип, openssl через brew, все работает
У меня что-то так и не завелось =(
Alexander
Ух ты! --- - hosts: localhost vars: uri: "http://thatsaurl.yeah/well" clean_url: "{{ uri | regex_replace('http://|/.+') }}" tasks: - name: test debug: var: clean_url
Alexander
Так работает: var1: "{{ environment_var1 | default(vault_variable1) }}" var2: "{{ var1 | regex_replace('pattern') }}" Хотелось бы без промежуточных решений: var2: "{{ environment_var1 | default(vault_variable1) | regex_replace('pattern') }}" Однако, последний сниппет не работает. Можно ли в одну строку?
Vladislav 👻
Может скобки нужны?
Vladislav 👻
У меня что-то так и не завелось =(
Я в питон3 ставил, может из-за этого?
Alexander
Как ругается?
Перепроверил тщательней - тест был неправильный. Я пустую переменную давал, а не убирал её вовсе.
Alexander
@tnt4brain спасибо =)
Sergey
@tnt4brain спасибо =)
😊 всегда пожалуйста
Anton
подскажите пожалуйста запускаю ansible-playbook в docker получаю ошибку [WARNING] Ansible is being run in a world writable directory (/builds/team/application), ignoring it as an ansible.cfg source. For more information see ansible.cfg находится в корне проекта. как сделать чтобы ansible вдиел ansible.cfg ?
łibfitź.r14.a
chmod -R a-w /path/to/project/root ?
łibfitź.r14.a
Помогло?
Oleg
Привет, написал такой тестовый плейбук, который (предположим) выполняет что-то на удаленных серверах, получает в переменную, потом локально всё это записывает в один файл. https://pastebin.com/DWVsXW9X при выполнении кол-во записей в файле не соотв. кол-ву хостов. к примеру у меня 7 хостов, кол-во записей бывает 5-6-7. я думаю что это из-за того что одновременная попыка перезписать файл, хотя у модуля выставлено unsafe_writes: no (похоже не влияет). Как правильно записывать результаты работы, для дальнейшей обработки, отчёта?
Timur
Операции чтения/записи файлов вообще нужно минимизировать по возможности. В любых скриптах.
Anton
Привет всем. Пишу статью "Простая реализация инфраструктуры как код используя gitlab ci и ansible" для хабра. Интересно ли и есть ли у кого-нибудь время побыть ревьюером статьи? Проверить/прочитать/протестировать. Вот ссылка https://docs.google.com/document/d/1iY4uWbNZTq0Y6LAE9iwq3iE56CdzLTdvFZOuZF-uZwY/edit?usp=sharing
inqfen
Могу сегодня посмотреть, именно IaC с ансиблом и гитлабом и пилю
Dmitry
а пока вот такой вопрос - есть какой то красивый способ собирать список текущих юзеров на хосте? - shell: 'grep {{ common_adm_group }} /etc/group | cut -d: -f4 | tr "," "\n"' changed_when: false # Make task green register: existing_users
Dmitry
а то пока только такое нашел
Dmitry
@tnt4brain Сереж, ты может знаешь?
Anton
Почему гит сабмодули, а не роли?
если роли то я так понимаю нужно все хранить в одном репозитории? обычно в организациях делают отдельные группы для разных команд
Anton
Не нужно. Почитайте про Galaxy, в requirements.yml указываются ссылки на репки с ролями.
вы статью читали? код смотрели? я там вовсю роли из galaxy использую
citius
вы статью читали? код смотрели? я там вовсю роли из galaxy использую
Именно что читал. :) Галакси умеет тянуть с локальных репозиториев, а не только с гитхаба.
Anton
кстати в статье допишу как устанавливать нужные роли
Anton
все равно не пойму ваш посыл. вы предлагаете все на роли перевести? а разграничение прав и доступов? даже если galaxy умеет с локальных репо - там везде приватные репозитории
citius
Но зато роли умеют в иерархию, зависимости, и т.д.
citius
Идеологически это правильнее
Anton
все равно не пойму вас
citius
gitlab это умеет
Зачем делать вендор лок, если можно его не делать?
citius
Завтра решите перейти на какой нить GoCD, и не будете иметь возможности
citius
Насчёт прав все просто, делается отдельный юзер для раннера, который имеет право забирать все нужные репы.
Anton
вот смотрите. есть общий репозиторий. вы там храните админов. так же есть группы команд: team1, team2. В каждой команде есть разные сервера. как с помощью ролей с учетом приватных репозиториев обновлять админов? только не предлагайте запускать playbook с установкой админов на все сервера
citius
Я не храню в Гите вообще секреты.
citius
Все в хаши волте в моем случае, но можно и другое хранилище внешнее
Anton
доступ ко всем репам должно быть только у админа git и все
citius
А хранить секреты в гитлабе не заблочат? Лол