𝚔𝚟𝚊𝚙𝚜
не, твой плейбук работает, эт я значит где-то накосячил
Womchik
о как таки правильно
𝚔𝚟𝚊𝚙𝚜
моя ошибка была в неприведении типов
slice indices must be integers or None or have an __index__ method
𝚔𝚟𝚊𝚙𝚜
myarr[0:(variable | int)] так работает
bebebe
да, есть такая неприятность
Андрей
ребята, как правильно посчитать яблоки?
- set_fact:
fruit_box: "[ 'апельсин', 'яблоко1', 'яблоко2', 'банан', 'киви', 'яблоко3']"
- debug:
msg: "{{ item }}"
with_items: "{{ fruit_box}}"
- name: Get number of apples.
set_fact:
apple_counter: "{% if 'яблоко' in item %}{{ apple_counter = apple_counter + 1 }}{% endif %}"
with_items: "{{ fruit_box }}"
- name: "apple_num"
debug:
msg: "{{apple_counter}}"
ошибка "template error while templating string: expected token 'end of print statement', got '='. String: {% if 'яблоко' in item %}{{ apple_counter = apple_counter + 1 }}{% endif %}"}
Андрей
а, сделал)
Андрей
vars:
apple_counter: 0
tasks:
- set_fact:
fruit_box: "[ 'апельсин', 'яблоко1', 'яблоко2', 'банан', 'киви', 'яблоко3', 'яблоко4']"
- name: debug err_lines2
debug:
msg: "{{ item }}"
with_items: "{{ fruit_box}}"
- name: Get number of apples.
set_fact:
apple_counter: "{% if 'яблоко' in item %} {% set apple_counter = apple_counter|int + 1 %} {% endif %}{{apple_counter}}"
with_items: "{{ fruit_box }}"
- name: "apple_num"
debug:
msg: "{{apple_counter}}"
сюда написал и мысль пришла
Vadim
{{ fruit_box|select("equalto", "яблоко") | length }}
bebebe
пришел лесник и всех разогнал (с)
Андрей
Vadim
чтите документацию
matt
почему при хранении инвентори в отдельных директориях не подтягиваются групповые переменные из "корня"?
matt
типа хосты в project/inventory/dev/hosts.ini, а переменные в project/group_vars/all/common.yml
Aleksey
https://github.com/ansible/ansible/blob/stable-2.7/changelogs/CHANGELOG-v2.7.rst
Victor
matt
што
matt
я хочу определить некоторые "глобальные" групповые переменные, и не дублировать их в каждом inventory/{dev,staging,production}
Victor
што
У тебя инвентори где?
matt
project/inventory/dev/hosts.ini
Victor
папка с инвентори
matt
мамка
Victor
директория
Victor
складка
matt
в project_name/inventory
Nklya
Почему бы их не засунуть в дефолтные переменные роли?
Victor
>project_name/inventory
Victor
А почему group_vars не в ней?
Vadim
https://docs.ansible.com/ansible/2.5/modules/include_vars_module.html
matt
а чо так можно было?
Victor
matt
project/
└── inventory
├── dev
├── group_vars
├── production
└── staging
matt
вот так?
matt
сейчас зачекаю
Vadim
project
- inventory
- кони
- люди
- дипломный проект
Victor
matt
не работает
Victor
не работает
с -vvv он тебе должен написать какие файлы в инвентори он запарсил
Victor
вей, не то
bebebe
когда-нибудь кто-нибудь должен обязательно спросить про версию ansible
matt
2.6.5
bebebe
у меня это выглядит так:
/etc/ansible/inventory
inventory.yaml
host_vars/host.foobar.com.yml
group_vars/somegroup.yml
Victor
OS?
matt
macOS 10.14
Victor
Victor
Почитай
https://github.com/ansible/ansible/issues/31755 возможно как-то к тебе относится
Victor
Хотя по версии вроде не должно
Pavel
не работает
если сделать group_vars в корне проекта (там где конфиг и плейбуки) и складывать туда общие инвентри для разных групп, должно работать
Pavel
Pavel
просто у меня все это в хоуме, а не "/etc" а потом еще и в репе
Pavel
типа такого:
~/devops
ansible
group_vars
inventory
development
group_vars
host_vars
hosts
production
group_vars
host_vars
hosts
stage
group_vars
host_vars
hosts
keys
log
roles
tools
ansible.cfg
matt
как раз так и не работает
matt
из самого верхнего group_vars не применяются
matt
я предполагал что оно наследоваться будет
Victor
mv ~/devops/ansible/group_vars ~/devops/ansible/inventory/group_vars должно решить твои проблемы
matt
не решает, я же писал)
Victor
Если ты указываешь инвентори как ~/devops/ansible/inventory
Victor
а если как ~/devops/ansible/inventory/stage , например, то он вообще ничего про это знать не будет
matt
я указываю его из текущего каталога, а-ля ap -i inventory/dev/hosts.ini playbooks/bootstrap.yml
Victor
matt
блин
matt
неудобно сделано
Victor
иначе будет хаос, бардак и еще что-то
Victor
Ты можешь указывать два инветори бтв
Victor
Ты можешь объединить это все в один инвенори разбив хосты просто по группам
Victor
Или указывать в дефолте роли
Victor
+1
Victor
Ну если ты указываешь инвентори, а у тебя энзибл ищет не там, то это черевато странным поведением и проблемами с траблшутингом что и где
Pavel
и никакого бардака, и для репозитория удобно - все в одной директории, только кей и лог исключить из версионирования....
matt
может я что-то не так делаю, но у меня по 20+ плейбуков в корне накапливается)
Pavel
Pavel
если там только плейбуки
matt
проблема скорей в эстетичности
Pavel