目的
目的是使用 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
成功
答案1
原因
gitlab-runner
问题是由于用户主目录中的已知主机文件中省略了主机而导致的
解决方案
- 登录为
gitlab-runner
iesudo 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 中的按钮重新启动构建