Я пытаюсь использовать kosssi.composer Ansible роль установить глобальный экземпляр composer, а также пару пакетов composer.
---
-
hosts: myhosts
remote_user: vagrant
sudo: true
roles:
- { role: kosssi.composer,
composer_path_env: true,
composer_home_path: /opt/composer,
composer_home_owner: vagrant,
composer_home_group: vagrant,
composer_global_packages:
phpunit/phpunit: '@stable'
phing/phing: '@stable'
}
Я пробовал много разных способов, как написать это, но я либо получаю синтаксические ошибки, либо ошибку with_dict expects a dict
, Глядя на источник, я вижу, что composer_global_packages
ожидает dict по крайней мере с длиной один, он определяется так:
with_dict: composer_global_packages
when: composer_global_packages|length > 0
Глядя на документацию yaml, я также понимаю, что не определено даже такое понятие, как «dict» или «словарь».
Что мне не хватает? Как правильно перечислить глобальные зависимости?
Словарь также известен как ассоциативный массив. Есть два способа определить их в YAML, и вы смешиваете их, что приводит в замешательство синтаксический анализатор.
Либо напишите все это в стиле JSON:
-
hosts: myhosts
remote_user: vagrant
sudo: true
roles:
- { role: kosssi.composer,
composer_path_env: true,
composer_home_path: /opt/composer,
composer_home_owner: vagrant,
composer_home_group: vagrant,
composer_global_packages:
{
phpunit/phpunit: '@stable',
phing/phing: '@stable'
}
}
, или в стиле только для пробелов:
-
hosts: myhosts
remote_user: vagrant
sudo: true
roles:
role: kosssi.composer
composer_path_env: true
composer_home_path: /opt/composer
composer_home_owner: vagrant
composer_home_group: vagrant
composer_global_packages:
phpunit/phpunit: '@stable'
phing/phing: '@stable'
Вы можете проверить свою структуру YAML с https://yaml-online-parser.appspot.com/
Других решений пока нет …