Ошибка при запуске playbook с тегами на kubespray

Я пытаюсь запустить playbook

ansible-playbook \
  -i inventory/preprod/inventory.ini \
  --private-key ~/.ssh/id_rsa_stagging \
  -u cloud-user \
  --become \
  --become-user=root \
  cluster.yml \
  --tags resolvconf

И он возвращает эту ошибку:

fatal: [tivit-aiops-k8s-preprd-app-1]: FAILED! => {
  "msg": "The field 'environment' has an invalid 
  value, which includes an undefined variable. The error 
  was: 'ansible.vars.hostvars.HostVarsVars object' has 
  no attribute 'ansible_hostname'"
}

Не понимаю, что делаю не так ....


person Thiago Oliveira    schedule 25.11.2019    source источник
comment
Какому руководству вы следовали?   -  person Dawid Kruk    schedule 26.11.2019
comment
Пожалуйста, опубликуйте все определенные вами group_vars, а также структуру вашего инвентаря.   -  person Sean Pianka    schedule 26.11.2019


Ответы (2)


Взгляните на предоставленный образец инвентаря от Кубеспрей:

# ## Configure 'ip' variable to bind kubernetes services on a
# ## different ip than the default iface
# ## We should set etcd_member_name for etcd cluster. The node that is not a etcd member do not need to set the value, or can set the empty string value.
[all]
# node1 ansible_host=95.54.0.12  # ip=10.3.0.1 etcd_member_name=etcd1
# node2 ansible_host=95.54.0.13  # ip=10.3.0.2 etcd_member_name=etcd2
# node3 ansible_host=95.54.0.14  # ip=10.3.0.3 etcd_member_name=etcd3
# node4 ansible_host=95.54.0.15  # ip=10.3.0.4 etcd_member_name=etcd4
# node5 ansible_host=95.54.0.16  # ip=10.3.0.5 etcd_member_name=etcd5
# node6 ansible_host=95.54.0.17  # ip=10.3.0.6 etcd_member_name=etcd6

Есть имя, которое можно использовать для ссылки на этот хост через файл инвентаризации (для назначения групп хосту), а также есть значение ansible_host, которое указывает IP-адрес, к которому будет подключаться Ansible (отдельно от имени).

person Sean Pianka    schedule 25.11.2019
comment
Я настраиваю свой инвентарь, как вы упомянули, потому что это, я запутался в этой ошибке ... в ответе ниже это мой инвентарь - person Thiago Oliveira; 26.11.2019

Вот конкретный пример файла инвентаризации. Обратите внимание, что ansible_host установлен на IP-адрес сервера. Вам понадобится по одной строке для каждого сервера.

[all]
ip-10-250-195-106.ec2.internal ansible_host=10.250.195.106
person David Medinets    schedule 12.07.2020