我正在尝试用ansible编写部署规则。其中一些步骤是:
更新和升级服务器
创建一个名为Harry的用户
向哈里添加公钥和私钥
从bitback.org克隆Git存储库
我想在主目录中将存储库克隆为harry
用户(这就是我复制它的公钥和私钥的原因)。问题是,无法指定必须作为执行Git克隆的用户。所以Ansible尝试将存储库克隆为根,但失败了,因为他没有访问存储库的权限。
你如何解决这个问题?
最佳答案
根据Ansible在Privilege Escalation上的文档,Ansible在成为非特权用户方面有局限性,因为它向Harry暴露了一个安全漏洞。
使用ansiblegit模块,可以使用key_file
参数指定从特权ansible用户使用Harry的私钥,使用become_user
可以将克隆文件的所有权授予Harry。例如:
- name: Clone bitbucket repo
git:
repo: [email protected]:your-repo.git
dest: /var/www/
version: master
accept_hostkey: yes
key_file: /home/harry/.ssh/id_rsa
become_user: harry