diff --git a/README.md b/README.md new file mode 100644 index 0000000000000000000000000000000000000000..ff641b51b52bc38ecdf057d73c2123b39d0c841f --- /dev/null +++ b/README.md @@ -0,0 +1,40 @@ +# Packages + +## Supported + +Only Apt and Debian Stretch. + +Other versions might work but are not tested. + +## Parameters and defaults + +packages: + pkg: {} + repos: {} + +All configuration is to be placed inside the `packages` dict. + +``` +# dictionary of package names to install. The key is the name of the packages, value musst be != none as none is used as knock out. +pkg: {} + +# dictionary of repositories to setup, the key is used as name for the repository. See **repo** for definition for the content +repos: {} +``` + +**repo**: +``` +# url to repo, example: "http://www.deb-multimedia.org stretch main non-free" +url: '' + +# only set either key or keyid + keyserver + +# gpg key to add for this repo +key: '' + +# key id of the key to add, for example "36A1D7869245C8950F966E92D8576A8BA88D21E9" +keyid: '' + +# key server to get the key from, for example "keyserver.ubuntu.com" +keyserver: +``` diff --git a/handlers/main.yml b/handlers/main.yml new file mode 100644 index 0000000000000000000000000000000000000000..d17e5fdb02f07a692e0a7fd9369215db58376f51 --- /dev/null +++ b/handlers/main.yml @@ -0,0 +1,2 @@ +- name: update apt cache + apt: update_cache=yes diff --git a/tasks/main.yml b/tasks/main.yml index f04d33e1302201b435712d32f373d028ddfad2d7..9ced492a2b095e3e8274916bc3ce3c4e3e124eb4 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -1,11 +1,24 @@ - set_fact: pkgs: "{{ packages.pkg | dict2items | rejectattr('value', 'none') | map(attribute='key') | list }}" +- name: list repositories to setup + debug: + var: packages.repos + verbosity: 1 - name: list packages to install debug: var: pkgs + verbosity: 1 + +- name: install apt-transport-https + apt: pkg=apt-transport-https + +- name: setup repositories + include_tasks: repo.yml + with_items: "{{ packages.repos }}" + +- meta: flush_handlers - name: install packages apt: pkg: "{{ pkgs }}" - update_cache: yes diff --git a/tasks/repo.yml b/tasks/repo.yml new file mode 100644 index 0000000000000000000000000000000000000000..64946cf4a14a816df8d0837cf196579599d81c83 --- /dev/null +++ b/tasks/repo.yml @@ -0,0 +1,19 @@ +- set_fact: + repo: "{{ packages.repos[item] }}" + +- name: "setup repo key for {{ item }}" + apt_key: + data: "{{ repo.key }}" + when: repo.key|d(false) + +- name: "setup repo key for {{ item }}" + apt_key: + id: "{{ repo.keyid }}" + keyserver: "{{ repo.keyserver }}" + when: + - repo.keyid|d(false) + - repo.keyserver|d(false) + +- name: "add repo {{ item }}" + apt_repository: + repo: "{{ repo.url }}"