首页 > 解决方案 > 如何避免 ansible git 模块存储凭据?

问题描述

我正在观察 ansible git 模块在使用以下模块时存储凭据(uname/pwd)如何解决这个问题?请指教

- name: pull v016 repo from git
    git: repo=https://{{ githubuser }}:{{ githubpassword|urlencode }}@git.abc.com/abc/abc.git
         dest=/tmp/test/abc
         accept_hostkey=yes
         update=yes
         clone=no
         force=yes
         remote=origin
         version=20190524v016

我尝试使用 git-credential-cache 来避免以纯文本形式存储密码,但它没有按预期工作

作为权宜之计,我使用 git set-url 命令来避免其他人在运行剧本时遇到问题

标签: gitansible

解决方案


如果您不能使用更好的解决方案 SSH 密钥对,则可以使用提示并参考用户名/密码。

取自文档

在运行剧本时,您可能希望提示用户输入某些内容,并且可以使用“vars_prompt”部分来实现。

一个常见的用途可能是询问您不想记录的敏感数据。

---
- hosts: all
  vars_prompt:

    - name: username
      prompt: "What is your username?"
      private: no

    - name: password
      prompt: "What is your password?"

  tasks:

    - debug:
        msg: 'Logging in as {{ username }}'

还值得注意的是,默认情况下用户输入是隐藏的,文档也建议这样做。


推荐阅读