Назад | Перейти на главную страницу

Как решить проблему "[Errno 13] Permission denied:" / root / .ansible "при запуске ansible с использованием Gitlab?

Цель

Цель состоит в том, чтобы развернуть программное обеспечение после завершения сборки с помощью 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

Обсуждение

  1. Бег ansible-playbook --help показывает, что -u это remote_user. Поскольку это установлено на root проблема не должна возникать.

  2. вход как gitlab-runner и впоследствии запустить ansible-playbook playbook.yml -u root --private-key=key.pem преуспевает

Причина

Проблема была вызвана тем, что хост был пропущен в известном файле хоста, который находится в домашнем каталоге gitlab-runner пользователь

Решение

  1. войти как gitlab-runner, т.е. sudo su - gitlab-runner
  2. запустить playbook, т.е. ansible-playbook playbook.yml -u root --private-key=key.pem
  3. войти yes если Are you sure you want to continue connecting (yes/no)? появляется
  4. нажмите на retry кнопка в gitlab, чтобы перезапустить сборку