Ansible playbook引用了一个git角色,该角色应该在本地主机上运行,但它不';T

Ansible playbook引用了一个git角色,该角色应该在本地主机上运行,但它不';T,git,ansible,ansible-2.x,ansible-inventory,Git,Ansible,Ansible 2.x,Ansible Inventory,我需要能够使用ansible git模块根据提交/合并的目标分支,在ansible controller上从相应的分支上git pull。我将ansible git放在一个角色中,并在每个剧本中引用该角色作为第一件事。此git角色在localhost上运行 我有以下清单: PreProd: hosts: myhost.mydomain.com: local: hosts: localhost: 还有剧本: - hosts: local connection: lo

我需要能够使用ansible git模块根据提交/合并的目标分支,在ansible controller上从相应的分支上
git pull
。我将ansible git放在一个角色中,并在每个剧本中引用该角色作为第一件事。此git角色在
localhost
上运行

我有以下清单:

PreProd:
  hosts:
    myhost.mydomain.com:

local:
  hosts:
    localhost:
还有剧本:

- hosts: local
  connection: local
  vars_files:
    - "../group_vars/{{ ENV }}/{{ ENV }}.yml"

  tasks:
    - name: Print variables
      debug:
        msg: "{{ ENV }} {{ var_username }}:{{ var_password }} branch: {{ var_branch }}"

  roles:
  - git

- name: Deploy My Application
  hosts: "{{ ENV }}"
  gather_facts: false
  tasks:
    - debug:
        msg: "branch: {{ var_branch }}"
我在
组变量中有以下结构:

group_vars\
   all\all.yml
   PreProd\PreProd.yml
我在
group\u vars
的所有组中定义了
var\u branch
变量,但在
group\u vars\all\all.yml
中没有定义,因为该变量特定于环境

当我运行playbook时,它会尝试建立连接,即使它显示
localhost

$  ansible-playbook -i preprod-servers.yml playbooks/test.yml -e ENV=PreProd

PLAY [local] **************************************************************************************************************************************************************************************************

TASK [git : Get latest code from repository] ******************************************************************************************************************************************************************
fatal: [localhost]: UNREACHABLE! => {"changed": false, "msg": "Kerberos auth failure for principal me@domain.com with pexpect: <redacted>k<redacted>i<redacted>n<redacted>i<redacted>t<redacted>:<redacted> <redacted>P<redacted>a<redacted>s<redacted>s<redacted>w<redacted>o<redacted>r<redacted>d<redacted> <redacted>i<redacted>n<redacted>c<redacted>o<redacted>r<redacted>r<redacted>e<redacted>c<redacted>t<redacted> <redacted>w<redacted>h<redacted>i<redacted>l<redacted>e<redacted> <redacted>g<redacted>e<redacted>t<redacted>t<redacted>i<redacted>n<redacted>g<redacted> <redacted>i<redacted>n<redacted>i<redacted>t<redacted>i<redacted>a<redacted>l<redacted> <redacted>c<redacted>r<redacted>e<redacted>d<redacted>e<redacted>n<redacted>t<redacted>i<redacted>a<redacted>l<redacted>s<redacted>", "unreachable": true}

NO MORE HOSTS LEFT ********************************************************************************************************************************************************************************************

PLAY RECAP ****************************************************************************************************************************************************************************************************
localhost                  : ok=0    changed=0    unreachable=1    failed=0
$ansible playbook-i prepod-servers.yml playbooks/test.yml-e ENV=prepod
播放[本地]**************************************************************************************************************************************************************************************************
任务[git:从存储库获取最新代码]******************************************************************************************************************************************************************
致命:[localhost]:无法访问!=>{“已更改”:false,“msg”:“主体的Kerberos身份验证失败”me@domain.com使用pexpect:kinit:Password获取初始凭据时不正确,“无法访问”:true}
没有更多的主人了********************************************************************************************************************************************************************************************
重演****************************************************************************************************************************************************************************************************
localhost:确定=0更改=0无法访问=1失败=0
感谢您的建议和见解。

建议:

  • 在同一个环境中,永远不要有多个环境(如Prepod和LOCAL) 同样的存货
  • Ansible将自动将
    组\u vars
    文件中的变量分配给这些组中的主机。不要将
    vars\u文件
    组变量
    文件一起使用
  • 对于
    local
    组,或者对于
    localhost
    ,设置
    连接:local

  • 我已经更新了我的帖子,提供了更多关于要求的详细信息。这是怎么回事:“获取初始凭据时密码不正确”