Vadim
я хз, это ошибка?
половина пакетов пип хочет что-то компилить на хосте, лучше ставить пакет из дистрибутива
Алексей
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
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
Alexander
Поднял nexus.
Пытаюсь залить либы туда)
Alexander
@vadikgo А кроме как PyPi вы Nexus как-то утилизируете?
Vlad
да почти под всё форматы реп что он поддерживает утилизируем
Alexander
Ого.
Alexander
Мне-то кроме docker hub'а и PyPI особо ничего не требуется.
Timur
Timur
Timur
https://docs.ansible.com/ansible/2.7/modules/git_module.html
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
Alexander
Евгений
Из Отуса парни пришли)
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
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') }}"
Однако, последний сниппет не работает. Можно ли в одну строку?
Sergey
Vladislav 👻
Может скобки нужны?
Alexander
Как ругается?
Перепроверил тщательней - тест был неправильный. Я пустую переменную давал, а не убирал её вовсе.
Alexander
@tnt4brain спасибо =)
Sergey
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 ?
Anton
łibfitź.r14.a
Помогло?
Oleg
Привет, написал такой тестовый плейбук, который (предположим) выполняет что-то на удаленных серверах, получает в переменную, потом локально всё это записывает в один файл.
https://pastebin.com/DWVsXW9X
при выполнении кол-во записей в файле не соотв. кол-ву хостов. к примеру у меня 7 хостов, кол-во записей бывает 5-6-7. я думаю что это из-за того что одновременная попыка перезписать файл, хотя у модуля выставлено unsafe_writes: no (похоже не влияет).
Как правильно записывать результаты работы, для дальнейшей обработки, отчёта?
Timur
Timur
Операции чтения/записи файлов вообще нужно минимизировать по возможности. В любых скриптах.
Anton
Привет всем. Пишу статью "Простая реализация инфраструктуры как код используя gitlab ci и ansible" для хабра.
Интересно ли и есть ли у кого-нибудь время побыть ревьюером статьи?
Проверить/прочитать/протестировать.
Вот ссылка
https://docs.google.com/document/d/1iY4uWbNZTq0Y6LAE9iwq3iE56CdzLTdvFZOuZF-uZwY/edit?usp=sharing
inqfen
Могу сегодня посмотреть, именно IaC с ансиблом и гитлабом и пилю
Dmitry
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
citius
Anton
Почему гит сабмодули, а не роли?
если роли то я так понимаю нужно все хранить в одном репозитории?
обычно в организациях делают отдельные группы для разных команд
citius
Anton
Anton
кстати в статье допишу как устанавливать нужные роли
Anton
все равно не пойму ваш посыл.
вы предлагаете все на роли перевести?
а разграничение прав и доступов?
даже если galaxy умеет с локальных репо - там везде приватные репозитории
citius
citius
Но зато роли умеют в иерархию, зависимости, и т.д.
citius
Идеологически это правильнее
Anton
Anton
все равно не пойму вас
citius
Завтра решите перейти на какой нить GoCD, и не будете иметь возможности
citius
Насчёт прав все просто, делается отдельный юзер для раннера, который имеет право забирать все нужные репы.
Anton
вот смотрите. есть общий репозиторий. вы там храните админов. так же есть группы команд: team1, team2.
В каждой команде есть разные сервера. как с помощью ролей с учетом приватных репозиториев обновлять админов?
только не предлагайте запускать playbook с установкой админов на все сервера
citius
Я не храню в Гите вообще секреты.
Anton
citius
Все в хаши волте в моем случае, но можно и другое хранилище внешнее
Anton
доступ ко всем репам должно быть только у админа git и все
citius
А хранить секреты в гитлабе не заблочат? Лол