Max
я немного пробовал, дошел до того, что плагин не ругается, но ни черта не находит.
Max
установил нужные пакеты, создал файл "что-то.vmware.yml", и пустой инвентарь.
Max
в смысле , --list выдает пустой инвентарь.
Pavel
всем привет. а кто-нибудь сталкивался с таким сообщением Ansible? fatal: [localhost]: FAILED! => {"changed": false, "msg": "Error connecting: Error while fetching server API version: HTTPConnectionPool(host='localhost', port=2375): Max retries exceeded with url: /version (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7ffbcc43eb90>: Failed to establish a new connection: [Errno 111] Connection refused',))"} Это при попытке банальной авторизации в Docker Hub: - name: Releasing image hosts: localhost gather_facts: no tasks: - name: Authorize docker_login: username: "{{ docker_hub_user }}" password: "{{ docker_hub_password }}" reauthorize: yes ... Аналогичный сценарий из того же репозитория работает ок: - name: Publishing image hosts: localhost gather_facts: no tasks: - name: Authorize docker_login: username: "{{ docker_hub_user }}" password: "{{ docker_hub_password }}" reauthorize: yes ... Первый плейбук запускается Make'ом: docker-release: @echo "Publish release… (supported attributes: ENV, VER)" ansible-playbook ansible/releasing.yml -i ansible/$(ENV) -e "release_version=$(VER)" --vault-password-file ansible/vault.txt второй: docker-publish: @echo "Publish app image in Docker Hub… (supported attributes: ENV, VER)" ansible-playbook ansible/publishing.yml -i ansible/$(ENV) -e "release_version=$(VER)" --vault-password-file ansible/vault.txt Разница только в том, что первый (не работающий) тригерится в Bitbucket pipelines таким правилом: tags: v*: - step: name: Configs generation script: - make cfg-gen ENV=staging artifacts: - .env - step: name: Make release script: - pip install docker - export ANSIBLE_CONFIG="./ansible/ansible.cfg" - RELEASE_VER=${BITBUCKET_TAG//[^[:digit:].]/}; - make docker-release ENV=staging VER=$RELEASE_VER второй таким: release/*: - step: name: Configs generation script: - make cfg-gen ENV=test artifacts: - .env - migrations-config.json - step: name: Linting code image: node:9.2 caches: - node script: - npm i - npm run lint - step: name: Building app image trigger: manual services: - docker caches: - docker - pip script: - pip install docker - export ANSIBLE_CONFIG="./ansible/ansible.cfg" - BRANCH_VER=${BITBUCKET_BRANCH//[^[:digit:].]/}; - RELEASE_VER=$BRANCH_VER'-rc' - make docker-build ENV=test VER=$RELEASE_VER - make docker-save ENV=test VER=$RELEASE_VER artifacts: - willingandable.ca.tar - parallel: - step: name: Pushing image to registry services: - docker script: - pip install docker - export ANSIBLE_CONFIG="./ansible/ansible.cfg" - BRANCH_VER=${BITBUCKET_BRANCH//[^[:digit:].]/}; - RELEASE_VER=$BRANCH_VER'-rc' - make docker-load ENV=test VER=$RELEASE_VER - make docker-publish ENV=test VER=$RELEASE_VER - step: name: Provisioning environment script: - yum -y install rsync - mkdir env - cp .env ./env/.env - export ANSIBLE_CONFIG="./ansible/ansible.cfg" - make env-provision ENV=test
Pavel
Сломал голову уже, почему так происходит?
George
Сломал голову уже, почему так происходит?
Выведи инвентарь и конфигурацию в пайплайне
George
И сравни
Kirill
Сломал голову уже, почему так происходит?
Если на модуль шелл заменить, что будет?
Kirill
Локализовать проблему на 100%, либо ансибл, либо докер. Дальше разбираться.
Pavel
ℭ𝔞𝔯𝔯𝔬𝔩
ℭ𝔞𝔯𝔯𝔬𝔩
всем привет. а кто-нибудь сталкивался с таким сообщением Ansible? fatal: [localhost]: FAILED! => {"changed": false, "msg": "Error connecting: Error while fetching server API version: HTTPConnectionPool(host='localhost', port=2375): Max retries exceeded with url: /version (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7ffbcc43eb90>: Failed to establish a new connection: [Errno 111] Connection refused',))"} Это при попытке банальной авторизации в Docker Hub: - name: Releasing image hosts: localhost gather_facts: no tasks: - name: Authorize docker_login: username: "{{ docker_hub_user }}" password: "{{ docker_hub_password }}" reauthorize: yes ... Аналогичный сценарий из того же репозитория работает ок: - name: Publishing image hosts: localhost gather_facts: no tasks: - name: Authorize docker_login: username: "{{ docker_hub_user }}" password: "{{ docker_hub_password }}" reauthorize: yes ... Первый плейбук запускается Make'ом: docker-release: @echo "Publish release… (supported attributes: ENV, VER)" ansible-playbook ansible/releasing.yml -i ansible/$(ENV) -e "release_version=$(VER)" --vault-password-file ansible/vault.txt второй: docker-publish: @echo "Publish app image in Docker Hub… (supported attributes: ENV, VER)" ansible-playbook ansible/publishing.yml -i ansible/$(ENV) -e "release_version=$(VER)" --vault-password-file ansible/vault.txt Разница только в том, что первый (не работающий) тригерится в Bitbucket pipelines таким правилом: tags: v*: - step: name: Configs generation script: - make cfg-gen ENV=staging artifacts: - .env - step: name: Make release script: - pip install docker - export ANSIBLE_CONFIG="./ansible/ansible.cfg" - RELEASE_VER=${BITBUCKET_TAG//[^[:digit:].]/}; - make docker-release ENV=staging VER=$RELEASE_VER второй таким: release/*: - step: name: Configs generation script: - make cfg-gen ENV=test artifacts: - .env - migrations-config.json - step: name: Linting code image: node:9.2 caches: - node script: - npm i - npm run lint - step: name: Building app image trigger: manual services: - docker caches: - docker - pip script: - pip install docker - export ANSIBLE_CONFIG="./ansible/ansible.cfg" - BRANCH_VER=${BITBUCKET_BRANCH//[^[:digit:].]/}; - RELEASE_VER=$BRANCH_VER'-rc' - make docker-build ENV=test VER=$RELEASE_VER - make docker-save ENV=test VER=$RELEASE_VER artifacts: - willingandable.ca.tar - parallel: - step: name: Pushing image to registry services: - docker script: - pip install docker - export ANSIBLE_CONFIG="./ansible/ansible.cfg" - BRANCH_VER=${BITBUCKET_BRANCH//[^[:digit:].]/}; - RELEASE_VER=$BRANCH_VER'-rc' - make docker-load ENV=test VER=$RELEASE_VER - make docker-publish ENV=test VER=$RELEASE_VER - step: name: Provisioning environment script: - yum -y install rsync - mkdir env - cp .env ./env/.env - export ANSIBLE_CONFIG="./ansible/ansible.cfg" - make env-provision ENV=test
Может отступы теряются?
Pavel
Да вроде нет
Pavel
Через пару часов смогу прогнать с дебагом
ℭ𝔞𝔯𝔯𝔬𝔩
Кмк, параметры не все передаются
Kirill
всем привет. а кто-нибудь сталкивался с таким сообщением Ansible? fatal: [localhost]: FAILED! => {"changed": false, "msg": "Error connecting: Error while fetching server API version: HTTPConnectionPool(host='localhost', port=2375): Max retries exceeded with url: /version (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7ffbcc43eb90>: Failed to establish a new connection: [Errno 111] Connection refused',))"} Это при попытке банальной авторизации в Docker Hub: - name: Releasing image hosts: localhost gather_facts: no tasks: - name: Authorize docker_login: username: "{{ docker_hub_user }}" password: "{{ docker_hub_password }}" reauthorize: yes ... Аналогичный сценарий из того же репозитория работает ок: - name: Publishing image hosts: localhost gather_facts: no tasks: - name: Authorize docker_login: username: "{{ docker_hub_user }}" password: "{{ docker_hub_password }}" reauthorize: yes ... Первый плейбук запускается Make'ом: docker-release: @echo "Publish release… (supported attributes: ENV, VER)" ansible-playbook ansible/releasing.yml -i ansible/$(ENV) -e "release_version=$(VER)" --vault-password-file ansible/vault.txt второй: docker-publish: @echo "Publish app image in Docker Hub… (supported attributes: ENV, VER)" ansible-playbook ansible/publishing.yml -i ansible/$(ENV) -e "release_version=$(VER)" --vault-password-file ansible/vault.txt Разница только в том, что первый (не работающий) тригерится в Bitbucket pipelines таким правилом: tags: v*: - step: name: Configs generation script: - make cfg-gen ENV=staging artifacts: - .env - step: name: Make release script: - pip install docker - export ANSIBLE_CONFIG="./ansible/ansible.cfg" - RELEASE_VER=${BITBUCKET_TAG//[^[:digit:].]/}; - make docker-release ENV=staging VER=$RELEASE_VER второй таким: release/*: - step: name: Configs generation script: - make cfg-gen ENV=test artifacts: - .env - migrations-config.json - step: name: Linting code image: node:9.2 caches: - node script: - npm i - npm run lint - step: name: Building app image trigger: manual services: - docker caches: - docker - pip script: - pip install docker - export ANSIBLE_CONFIG="./ansible/ansible.cfg" - BRANCH_VER=${BITBUCKET_BRANCH//[^[:digit:].]/}; - RELEASE_VER=$BRANCH_VER'-rc' - make docker-build ENV=test VER=$RELEASE_VER - make docker-save ENV=test VER=$RELEASE_VER artifacts: - willingandable.ca.tar - parallel: - step: name: Pushing image to registry services: - docker script: - pip install docker - export ANSIBLE_CONFIG="./ansible/ansible.cfg" - BRANCH_VER=${BITBUCKET_BRANCH//[^[:digit:].]/}; - RELEASE_VER=$BRANCH_VER'-rc' - make docker-load ENV=test VER=$RELEASE_VER - make docker-publish ENV=test VER=$RELEASE_VER - step: name: Provisioning environment script: - yum -y install rsync - mkdir env - cp .env ./env/.env - export ANSIBLE_CONFIG="./ansible/ansible.cfg" - make env-provision ENV=test
А почему в первом пайплайне нет services docker?
Pavel
В - внимательность! 😉
Pavel
Спасибо, проверю
Kirill
Спасибо, проверю
Про модуль комманд я написал не посмотрев код пайплайна :)
Kirill
А это всё в ещё одном контейнере выполняется?
Pavel
Не понял вопроса
Kirill
Инструкции pip install docker, make и вот это всё где выполняется?
Kirill
Я к чему спросил. Удивился, что вроде в контейнере всё выполняется, а еще pip install docker. Чот тоже невнимательно, подумал, что докер ставите в докер, ещё и service: docker.
Pavel
В CI
Rishat
Привет, юзаю это https://docs.gitlab.com/runner/register/index.html если запустить sudo gitlab-runner register как raw, то он буит ждать stdin? Как можно руками передать с host_vars все варианты запроса stdin с команды sudo gitlab-runner register Что-то типа такого: # GITLAB RUNNER INFO URL: https://gitlab.com/ TOKEN: myW4xd6Uydsqsqsq TAGS: deployer
Rishat
https://github.com/Rishats/ansible_gitlab_runner/blob/master/roles/gitlab_runner/tasks/gitlab_runner.yml
George
https://github.com/Rishats/ansible_gitlab_runner/blob/master/roles/gitlab_runner/tasks/gitlab_runner.yml
Это линтер и стайл чекинг проходит ???? 😳😳😳
Rishat
Мне просто надо временно
George
Именно
Rishat
накинуть на много машин
Oleksandr
https://github.com/Rishats/ansible_gitlab_runner/blob/master/roles/gitlab_runner/tasks/gitlab_runner.yml
Вынеси все в баш-скрипт и дерни его ансиблом
Rishat
Вынеси все в баш-скрипт и дерни его ансиблом
А я смогу этим получить то что я хочу? Передать туда из host_var все что требует sudo gitlab-runner register, Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com ) https://gitlab.com вот допустим он запросил ввести, как мне в баше всунуть сюда что-то? Примерно линк если был бы как это делается, был бы очень благодарен.
Rishat
Я про сам стиль
А про то чтобы не писать raw?
Rishat
Ну конечно
Ну эт ладно( Мне бы понять как можно работать с тем что требует ввода чего-либо) Или хотябы отдать возможность юзеру вводить это)) Такого нет наверн?))
Rishat
Ну блинэ :D Ладно, буду заходить пока на машину и сам руками регать)))
niko
тебе надо найти как использовать эту тулзу неинтерактивно
niko
либо флаг, либо подкладывать готовый конфиг
niko
если это совсем не возможно, то есть https://linux.die.net/man/1/expect, но не делай так)
Timur
https://github.com/lean-delivery/ansible-role-gitlab-runner
Rishat
sudo gitlab-runner register \ --non-interactive \ --url "https://gitlab.com/" \ --registration-token "PROJECT_REGISTRATION_TOKEN" \ --executor "docker" \ --docker-image alpine:3 \ --description "docker-runner" \ --tag-list "docker,aws" \ --run-untagged \ --locked="false" \
Rishat
во шо нашел в доке))
niko
удивительно что бывает если читать доки!
Rishat
Вариант как в нашей роли не подходит?
да подходит, но пока разберешься что там они хотят, легче на коленке запустить, мне просто срочно
Timur
Rishat
davay-davay driven development
когда прод буду делать, попробую с вашей ролью) Спасиб)
Kirill
Вариант как в нашей роли не подходит?
Не первый раз вижу у вас употребление местоимений во множественном числе. Ваша роль это чья? Какая-то организация?
Timur
В него мы выносим отработанные и часто используемые на наших проектах роли
Timur
Используя TDD подход для разработки и тестирования всех ролей
Kirill
Kirill
Это EPAM
Понял. Спасибо.
Timur
В рамках данного проекта мы активно контрибьютим в опенсорс
Timur
Как выводим свои роли в открытый доступ, так и улучшаем используемые нами инструменты ансибла
Timur
Недавно, кстати, реализовали проверку чексуммы в модуле win_get_url
Timur
Фича должна появиться в новом релизе ансибла
George
Я expect'ом фортиклиент (ВПН) оборачивал
Rishat
Тебе нужен expect :-) для интерактивных программ
о, спасиб) Надо посмотреть) А с VPN вы подключение делали и выполнение скриптов? А то у меня тоже походу буит такой таск скоро, где надо выполнять скрипты используя vpn.
George
о, спасиб) Надо посмотреть) А с VPN вы подключение делали и выполнение скриптов? А то у меня тоже походу буит такой таск скоро, где надо выполнять скрипты используя vpn.
Нет, это именно поднятие впна. Причем ВПН не умеет в не интерактивный режим и там нужно "виртуально" в нужные моменты нажимать y/n. Чем expect по сути и занимается. А вызов скрипта для выполнения на удаленной машине там можно приколхозить )
George
George
Почему ансибл такой медленный ? Все это отмечают. https://blog.ryandlane.com/2014/08/04/moving-away-from-puppet-saltstack-or-ansible/
George
Что-то с 14-го года изменилось ?
George
Да, про митоген я в курсе :-)
George
Это сейчас топ #1 про вопрос производительности