Цель
Цель состоит в том, чтобы развернуть программное обеспечение после завершения сборки с помощью Ansible и Gitlab.
Проблема
ansible-playbook playbook.yml -u root --private-key=key.pem
развертывает программное обеспечение, но
sudo -u gitlab-runner ansible-playbook playbook.yml -u root --private-key=key.pem
приводит к:
PLAY ***************************************************************************
TASK [setup] *******************************************************************
An exception occurred during task execution. To see the full traceback, use -vvv. The error was: OSError: [Errno 13] Permission denied: '/root/.ansible'
fatal: [system.example.com]: FAILED! => {"failed": true, "stdout": ""}
NO MORE HOSTS LEFT *************************************************************
PLAY RECAP *********************************************************************
system.example.com : ok=0 changed=0 unreachable=0 failed=1
Обсуждение
Бег ansible-playbook --help
показывает, что -u
это remote_user. Поскольку это установлено на root
проблема не должна возникать.
вход как gitlab-runner
и впоследствии запустить ansible-playbook playbook.yml -u root --private-key=key.pem
преуспевает
Причина
Проблема была вызвана тем, что хост был пропущен в известном файле хоста, который находится в домашнем каталоге gitlab-runner
пользователь
Решение
gitlab-runner
, т.е. sudo su - gitlab-runner
ansible-playbook playbook.yml -u root --private-key=key.pem
yes
если Are you sure you want to continue connecting (yes/no)?
появляетсяretry
кнопка в gitlab, чтобы перезапустить сборку