我正在尝试用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

10-04 17:24