28 lines
678 B
YAML
28 lines
678 B
YAML
|
|
- hosts: localhost
|
||
|
|
connection: local
|
||
|
|
become: true
|
||
|
|
tasks:
|
||
|
|
- name: load package list
|
||
|
|
include_vars:
|
||
|
|
file: packages.yml
|
||
|
|
|
||
|
|
- set_fact:
|
||
|
|
distro: "{{ ansible_distribution|lower }}"
|
||
|
|
|
||
|
|
- set_fact:
|
||
|
|
defined_packages: "{{ packages|json_query('keys(list)') }}"
|
||
|
|
|
||
|
|
- set_fact:
|
||
|
|
distro_packages: "{{ packages|json_query('list.*.%s'|format(distro)) }}"
|
||
|
|
|
||
|
|
- name: check list
|
||
|
|
assert:
|
||
|
|
that: "defined_packages|length == distro_packages|length"
|
||
|
|
|
||
|
|
- name: install packages
|
||
|
|
package:
|
||
|
|
name: "{{ packages|json_query(query) }}"
|
||
|
|
state: installed
|
||
|
|
vars:
|
||
|
|
query: "{{ 'list.*.%s[]'|format(distro) }}"
|