Anton
А он и для shell?
Anton
Стоит попробовать
Timur
Anton
Все равно не хочется делать из gitlab runner помойку
Anton
В общем можно просто инструкцию в статью. А сами люди буду сами решать
Timur
Не хотите делать из раннера помойку - не нужно пихать в ci говнокод с выставлением элементарных параметров вроде прав на файлы
Timur
Не хотите написать статью best practice по использованию gitlab ci?
Может, и хочу, но пока времени на это нет столько. Вы просили конструктивных замечаний - вам их дали
Anton
Спс
Timur
Основной бест практис для любого ci - не пихать туда второстепенную логику и всякие костыли
Timur
В ci должно быть только самое необходимое - запуск ci скриптов (или в нашем случае - ансибл плейбук) с нужными параметрами
Timur
Ну и точно не стоит пихать в решение докер ради докера, особенно если не очень хорошо умеете с ним работать
Timur
Вешать на ci проброс ключей и паролей с записями в конфиг ssh - это тоже очень плохой подход
Timur
Фу так делать
Timur
А, ну и become: yes по умолчанию для разворачивания ролей - это тоже фу
Игорь
Привет! Народ, подскажите в чем ошибка? {% for host in groups[name] %}{{ hostvars[host]['ansible_default_ipv4'] }} FAILED! => {"changed": false, "msg": "AnsibleUndefinedVariable: 'ansible.vars.hostvars.HostVarsVars object' has no attribute 'ansible_default_ipv4'"}
Игорь
собраны
Timur
А на остальных хостах группы?
Timur
Нигде не отключён сбор фактов?
Sergey
То есть это не баг, это фича.
Vladislav 👻
А кто как инсталлит и контролит docker-compose?
Vladislav 👻
что-то меня разарвало на моменте, что бинарник положили в /usr/local/bin, а в PATH без интерактива его нет, так еще и root не видит
Dmitry
ты можешь сделать просто pip install docker-compose
Vladislav 👻
chmod +x
это очевидно
Vladislav 👻
а при пипе все пользователи будут видеть композ нормально?
Vladislav 👻
спасибо, пойду думать
Dmitry
спасибо, пойду думать
можно просто почитать доку по установке с офсайта
Dmitry
ансиблируется это на раз-два
Vladislav 👻
первый вариант, как видно, не работает на раз два
Vladislav 👻
через пип сейчас буду смотреть
Dmitry
Dmitry
как жить? есть идеи? )
Vladimir
Поставить пакет, там же прям написано
Vladimir
pip install openshift
Dmitry
посоны, прочитайте плиз последнюю строку в выводе )
Egor
посоны, прочитайте плиз последнюю строку в выводе )
А если не на локалхосте нужно ставить этот модуль?)
Tadeusz
таки, да, там поставь
Dmitry
а если я вам скажу что вызываю -i «127.0.0.1,»
Tadeusz
а dna это dead nigga association ? сорян за оффтоп
Vladimir
Либо поставить delegate to
Sergey
Ребят как заставить роль инклюдить варсфайл раньше чем идет gather_facts? В роли есть необходимая переменная ansible_default_ipv4 которая вынуждает его использовать, а при gather_facts: true я не могу подключить варсфайл с паролем
Victor
У тебя варсфайл таском что ли подключается?
Sergey
У тебя варсфайл таском что ли подключается?
- name: Include {{ env }}-redis vars include_vars: "{{ item }}" with_items: - "vars/{{ env }}-redis.yml" - "vars/redis_main.yml" when: hostgroup == "redis"
Sergey
ога
Victor
Или засунуть инклуд в претаски, он вроде бы идет до сбора фактов. Как третий вариант
Mik
Ребят, есть задача стянуть 11 джаву с оф сайта, но вот нод много и 50% вываливает о том что не могут установить из-за того что пакет битый. Можно както ансиблом сделать так чтобы оно проверяло что загрузило все, ну либо если не все делоло редовнлоад?
Vadim
можыд ты py2 вызываешь, а поставил в py3? В любом случае ansible его не видит
Dmitry
хотя python по умолчанию во второй смотрит
Dmitry
ну и делегейт допишу чо уж
Vadim
делегейт ненужен, он должен стоять локально, на ремоуте он не нужен
NS 🇷🇺
Всем привет, а какие лучшие практики существуют выполнения кода в ансибл всего 1 раз на этапе деплоя например, и если бесконечно много раз перезапускать этот плейбук, данный кусок не выполнится более
NS 🇷🇺
да над таким вариантом думал
One
- name: Check OS family debug: msg="This is my OS" when: ansible_os_family == "Debian"
Vlad
Исправьте образ докера
Причина не в образе докера. Ansible с версии 2.6.5 стал проверять права на каталог. И из-за бага gitlab стала проявляться ошибка: https://gitlab.com/gitlab-org/gitlab-runner/issues/1736
Anonymous
Добрый день. Подскажите пожалуйста, как в awx проекте в roles/requirements.yml правильно указать путь к роли, которая хранится в внутреннем gitlab'e ? Т.е. awx project это репозиторий, в котором в roles/requirements.yml лежат пути к ролям в других репах Пробовал, как указано тут - https://docs.ansible.com/ansible/latest/reference_appendices/galaxy.html#installing-multiple-roles-from-a-file, но таск стал падать с питоновской ошибкой - https://gist.github.com/RenderQwerty/0b3e21afc50d3b3dc9fbcbc8a0db3fbe Вот пример requirements.yml, который не работает - src: git@git.ppl33-35.com:PPL/Infrastructure/ansible-roles/users.git scm: git version: "master"
Anonymous
Скорее всего, прав не хватает нужных
А какие credentials awx юзает, чтобы получить доступ к репе с ролью? Я тоже в эту сторону подумал, но у меня всего один source-control тип credential'ов. И на саму репу с ролями права для awx есть
George
Коллеги, привет. Напомните, пожалуйста, где брать самые лучшие отлаженные роли/плейбуки для ансибля. У меня, к сожалению, разыгрался склероз
simplemice.eth
галакси / гитхаб
Vlad
ни в гэлакси ни на гитхабе нет принудительного контроля качества. Соответственно поток говн зашкаливает. Нужно смотреть репы корпораций, с достаточным количеством экспертов, например redhat.
John
как ансиблом заменить ключ авторизации на всех машинах? ВРоде бы задача простая, но если часть (например половина) машин сейчас не доступны, то получится что пока я поменял ключи на второй половине = утратил управление. не поменял на первой половине и заменил ключ ансибла - не смогу заменить с новым ключем на первой половине машин.
Tadeusz
почему они недоступны то?)
John
почему они недоступны то?)
например канал отвалился, или тунель до них сломался. Не важно в принципе почему. Мы просто понимаем что они вернутся через какое-то время.