From 3ca908cc37541589c956cf47c5a06741b1641e02 Mon Sep 17 00:00:00 2001 From: Mischa ter Smitten Date: Tue, 4 Oct 2022 17:09:04 +0200 Subject: [PATCH 1/3] Consistency changes --- .ansible-lint | 1 - .github/workflows/ci.yml | 9 ++++----- Dockerfile | 13 ++++++++----- README.md | 2 +- defaults/main.yml | 2 +- meta/main.yml | 5 ++--- molecule/default/collections.yml | 6 ++++++ requirements.yml | 3 +++ tasks/main.yml | 6 +++--- 9 files changed, 28 insertions(+), 19 deletions(-) create mode 100644 molecule/default/collections.yml create mode 100644 requirements.yml diff --git a/.ansible-lint b/.ansible-lint index 142c0e2..7e0172a 100644 --- a/.ansible-lint +++ b/.ansible-lint @@ -2,4 +2,3 @@ warn_list: - role-name - name[casing] - - '204' diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 061a89f..5e5c0cf 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -23,7 +23,9 @@ jobs: python-version: '3.x' - name: Install test dependencies - run: pip install ansible-lint[community,yamllint] + run: | + pip install ansible-lint + ansible-galaxy install -r requirements.yml - name: Lint code run: | @@ -43,11 +45,8 @@ jobs: matrix: include: - distro: debian8 - ansible-version: '<2.10' - distro: debian9 - distro: debian10 - - distro: ubuntu1604 - ansible-version: '>=2.9, <2.10' - distro: ubuntu1604 ansible-version: '>=2.10, <2.11' - distro: ubuntu1604 @@ -73,7 +72,7 @@ jobs: molecule test env: ANSIBLE_FORCE_COLOR: '1' - ANSIBLE_VERBOSITY: '3' + ANSIBLE_VERBOSITY: '2' MOLECULE_DEBUG: '1' MOLECULE_DISTRO: "${{ matrix.distro }}" PY_COLORS: '1' diff --git a/Dockerfile b/Dockerfile index b179278..6ebe0c4 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,17 +1,20 @@ -FROM ubuntu:16.04 +FROM ubuntu:18.04 MAINTAINER Mischa ter Smitten +ENV LANG C.UTF-8 +ENV LC_ALL C.UTF-8 + # python RUN apt-get update && \ - DEBIAN_FRONTEND=noninteractive apt-get install -y python-minimal python-dev curl && \ + DEBIAN_FRONTEND=noninteractive apt-get install -y python3-minimal python3-dev curl && \ apt-get clean -RUN curl -sL https://bootstrap.pypa.io/pip/2.7/get-pip.py | python - +RUN curl -sL https://bootstrap.pypa.io/pip/3.6/get-pip.py | python3 - RUN rm -rf $HOME/.cache # ansible -RUN DEBIAN_FRONTEND=noninteractive apt-get install -y gcc libffi-dev libssl-dev && \ +RUN DEBIAN_FRONTEND=noninteractive apt-get install -y python3-apt && \ apt-get clean -RUN pip install ansible==2.9.15 +RUN pip3 install ansible==2.10.7 RUN rm -rf $HOME/.cache # provision diff --git a/README.md b/README.md index 8f797f9..73bccd6 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ None #### Variables -* `vagrant_version` [default: `2.3.1`]: Version to install +* `vagrant_version` [default: `2.3.1-1`]: Version to install ## Dependencies diff --git a/defaults/main.yml b/defaults/main.yml index 8636728..fd9bc7d 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -1,3 +1,3 @@ # defaults file --- -vagrant_version: 2.3.1 +vagrant_version: 2.3.1-1 diff --git a/meta/main.yml b/meta/main.yml index 5a6f637..1891b88 100644 --- a/meta/main.yml +++ b/meta/main.yml @@ -1,13 +1,12 @@ # meta file --- galaxy_info: - namespace: oefenweb + author: oefenweb role_name: vagrant - author: Mischa ter Smitten company: Oefenweb.nl B.V. description: Set up Vagrant in Debian-like systems license: MIT - min_ansible_version: 2.9.0 + min_ansible_version: 2.10.0 platforms: - name: Ubuntu versions: diff --git a/molecule/default/collections.yml b/molecule/default/collections.yml new file mode 100644 index 0000000..c3d7e2a --- /dev/null +++ b/molecule/default/collections.yml @@ -0,0 +1,6 @@ +--- +collections: + - name: community.docker + version: '>=1.2.0,<2' + - name: community.general + version: '>=2,<3' diff --git a/requirements.yml b/requirements.yml new file mode 100644 index 0000000..3d5f1cd --- /dev/null +++ b/requirements.yml @@ -0,0 +1,3 @@ +# requirements file +--- +collections: [] diff --git a/tasks/main.yml b/tasks/main.yml index 25dbab2..6552ca1 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -1,7 +1,7 @@ # tasks file --- - name: create (download) directory - file: + ansible.builtin.file: path: "{{ vagrant_downloads_path }}" state: directory owner: root @@ -13,7 +13,7 @@ - vagrant-download - name: download - get_url: + ansible.builtin.get_url: url: "https://releases.hashicorp.com/vagrant/{{ vagrant_version }}/vagrant_{{ vagrant_version }}_{{ ansible_machine }}.deb" dest: "{{ vagrant_downloads_path }}/vagrant_{{ vagrant_version }}_{{ ansible_machine }}.deb" owner: root @@ -25,7 +25,7 @@ - vagrant-download - name: install deb file - apt: + ansible.builtin.apt: deb: "{{ vagrant_downloads_path }}/vagrant_{{ vagrant_version }}_{{ ansible_machine }}.deb" tags: - configuration From e71d0ba7572447879ad613bc7f8f7c3099ad535b Mon Sep 17 00:00:00 2001 From: Mischa ter Smitten Date: Wed, 5 Oct 2022 11:10:26 +0200 Subject: [PATCH 2/3] Install from repo --- defaults/main.yml | 1 - tasks/install.yml | 8 ++++++++ tasks/main.yml | 28 ++++------------------------ tasks/repository.yml | 27 +++++++++++++++++++++++++++ tests/tasks/post.yml | 6 ++++++ tests/test.yml | 3 +++ tests/vagrant.yml | 3 +++ vars/main.yml | 13 ++++++++++++- 8 files changed, 63 insertions(+), 26 deletions(-) create mode 100644 tasks/install.yml create mode 100644 tasks/repository.yml create mode 100644 tests/tasks/post.yml diff --git a/defaults/main.yml b/defaults/main.yml index fd9bc7d..d3c5414 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -1,3 +1,2 @@ # defaults file --- -vagrant_version: 2.3.1-1 diff --git a/tasks/install.yml b/tasks/install.yml new file mode 100644 index 0000000..938171c --- /dev/null +++ b/tasks/install.yml @@ -0,0 +1,8 @@ +# tasks file +--- +- name: install | dependencies + ansible.builtin.apt: + name: "{{ vagrant_dependencies }}" + state: "{{ apt_install_state | default('latest') }}" + tags: + - vagrant-install-dependencies diff --git a/tasks/main.yml b/tasks/main.yml index 6552ca1..7ccfd57 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -1,33 +1,13 @@ # tasks file --- -- name: create (download) directory - ansible.builtin.file: - path: "{{ vagrant_downloads_path }}" - state: directory - owner: root - group: root - mode: 0755 +- ansible.builtin.import_tasks: repository.yml tags: - configuration - vagrant - - vagrant-download + - vagrant-repository -- name: download - ansible.builtin.get_url: - url: "https://releases.hashicorp.com/vagrant/{{ vagrant_version }}/vagrant_{{ vagrant_version }}_{{ ansible_machine }}.deb" - dest: "{{ vagrant_downloads_path }}/vagrant_{{ vagrant_version }}_{{ ansible_machine }}.deb" - owner: root - group: root - mode: 0644 +- ansible.builtin.import_tasks: install.yml tags: - configuration - vagrant - - vagrant-download - -- name: install deb file - ansible.builtin.apt: - deb: "{{ vagrant_downloads_path }}/vagrant_{{ vagrant_version }}_{{ ansible_machine }}.deb" - tags: - - configuration - - vagrant - - vagrant-install-deb + - vagrant-install diff --git a/tasks/repository.yml b/tasks/repository.yml new file mode 100644 index 0000000..bb8057f --- /dev/null +++ b/tasks/repository.yml @@ -0,0 +1,27 @@ +# tasks file +--- +- name: repository | install dependencies (pre) + ansible.builtin.apt: + name: "{{ vagrant_dependencies_pre }}" + state: "{{ apt_install_state | default('latest') }}" + update_cache: true + cache_valid_time: "{{ apt_update_cache_valid_time | default(3600) }}" + tags: + - vagrant-repository-install-dependencies + +- name: repository | add public key + ansible.builtin.apt_key: + id: DA418C88A3219F7B + url: https://apt.releases.hashicorp.com/gpg + state: present + tags: + - vagrant-repository-public-key + +- name: repository | add + ansible.builtin.apt_repository: + repo: "{{ item.type }} {{ item.url }} {{ item.component }}" + state: present + update_cache: true + with_items: "{{ vagrant_repositories }}" + tags: + - vagrant-repository-add diff --git a/tests/tasks/post.yml b/tests/tasks/post.yml new file mode 100644 index 0000000..63345d7 --- /dev/null +++ b/tests/tasks/post.yml @@ -0,0 +1,6 @@ +# post test file +--- +- name: test installation + ansible.builtin.command: > + vagrant --version + changed_when: false diff --git a/tests/test.yml b/tests/test.yml index be2b897..b1d0a7d 100644 --- a/tests/test.yml +++ b/tests/test.yml @@ -5,3 +5,6 @@ become: true roles: - ../../ + post_tasks: + - name: include tasks + ansible.builtin.import_tasks: "{{ playbook_dir }}/tasks/post.yml" diff --git a/tests/vagrant.yml b/tests/vagrant.yml index afdaebc..cb458a1 100644 --- a/tests/vagrant.yml +++ b/tests/vagrant.yml @@ -5,3 +5,6 @@ become: true roles: - ../../ + post_tasks: + - name: include tasks + ansible.builtin.import_tasks: "{{ playbook_dir }}/tasks/post.yml" diff --git a/vars/main.yml b/vars/main.yml index 2d16acf..e5b9603 100644 --- a/vars/main.yml +++ b/vars/main.yml @@ -1,3 +1,14 @@ # vars file --- -vagrant_downloads_path: /var/lib/ansible/vagrant/downloads +vagrant_repositories: + - type: deb + url: "https://apt.releases.hashicorp.com {{ ansible_distribution_release }}" + component: main + +vagrant_dependencies_pre: + - software-properties-common + - dirmngr + - apt-transport-https + +vagrant_dependencies: + - vagrant From 443df2c2f94a2466f5e572f6f1546662e5780c2e Mon Sep 17 00:00:00 2001 From: Mischa ter Smitten Date: Wed, 5 Oct 2022 11:15:09 +0200 Subject: [PATCH 3/3] Cleanup --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 73bccd6..7607a91 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ None #### Variables -* `vagrant_version` [default: `2.3.1-1`]: Version to install +None ## Dependencies