У меня есть сценарий dict, который выглядит следующим образом:
x_php_versions_installed:
ea-php71:
- ea-php71-php-bcmath
- ea-php71-php-xmlrpc
- ea-php71-php-zip
- pecl-memcached
- pecl-imagick
ea-php72:
- ea-php72-php-cli
- ea-php72-php-common
- ea-php72-php-curl
- pecl-imagick
Я хотел бы их отфильтровать, чтобы записать мне каждое item.value, которое содержит строку «ea», но не все остальное. Моя задача выглядит так:
- name: Write out only the ea packages
debug:
msg: '{{ item.value }}'
when: item.value | selectattr(item.value, 'contains', 'ea')
loop: '{{ x_php_versions_installed | dict2items }}
Но это не работает, потому что в нем будут перечислены все пакеты, а не только ea. Ожидаемый ответ должен выглядеть так:
...
"msg": [
"ea-php71-php-bcmath",
"ea-php71-php-xmlrpc",
"ea-php71-php-zip"
]
...
"msg": [
"ea-php72-php-cli",
"ea-php72-php-common",
"ea-php72-php-curl"
]
...
Другая возможность - отфильтровать строку 'pecl', она даст мне тот же результат, и она также отлично работает.