[英]Ansible playbook reference a git role which should run on localhost but it doesn't
I need to be able to use the ansible git module to git pull
on ansible controller from the respective branch based on the target branch of commit / merge. 我将 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
有以下结构:
group_vars\
all\all.yml
PreProd\PreProd.yml
我在group_vars
的所有组中定义了var_branch
变量,但在group_vars\all\all.yml
中没有定义,因为这个变量是特定于环境的。
当我运行剧本时,它会尝试建立连接,即使它显示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
任何建议和见解都值得赞赏。
建议:
group_vars
文件中的变量分配给这些组中的主机。 不要将vars_files
与group_vars
文件一起使用。local
组,或者对于localhost
,设置connection: local
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.