Compare commits

...

3 Commits

Author SHA1 Message Date
shnee a722fd8574 Added linting to molecule. 4 years ago
shnee aeb9d2145e molecule tests working for ubuntu and centos 8.
- Currently the ubuntu images is a generic image that's actually 19.04.
  This image will be updated.
4 years ago
shnee dabb0c2819 Tests run on centos 8. 4 years ago

@ -0,0 +1,16 @@
os_release: Ansible Role
================================================================================
Grabs and parses the contents of /etc/os-release.
This file holds additional information that may not be provided by the setup
module. For example, if we wanted to know whether or not a host has Manjaro
installed, it is not easy to figure this out from the setup module. The setup
module produces `ansible_distribution=Archlinux` while this role produces
`os_release.ID=manjaro`.
License
----------------------------------------
GPL-3.0

@ -1,53 +1,20 @@
---
galaxy_info:
author: your name
namespace: shnee
description: your role description
company: your company (optional)
# If the issue tracker for your role is not on github, uncomment the
# next line and provide a value
# issue_tracker_url: http://example.com/issue/tracker
# Choose a valid license ID from https://spdx.org - some suggested licenses:
# - BSD-3-Clause (default)
# - MIT
# - GPL-2.0-or-later
# - GPL-3.0-only
# - Apache-2.0
# - CC-BY-4.0
license: license (GPL-2.0-or-later, MIT, etc)
author: shnee
namespace: shnee
description: Retrieves the contents of /etc/os-release
license: GPL-3.0-only
min_ansible_version: 2.1
# If this a Container Enabled role, provide the minimum Ansible Container version.
# min_ansible_container_version:
#
# Provide a list of supported platforms, and for each platform a list of versions.
# If you don't wish to enumerate all versions for a particular platform, use 'all'.
# To view available platforms and versions (or releases), visit:
# https://galaxy.ansible.com/api/v1/platforms/
#
# platforms:
# - name: Fedora
# versions:
# - all
# - 25
# - name: SomePlatform
# versions:
# - all
# - 1.0
# - 7
# - 99.99
platforms:
- name: EL
versions:
- 8
galaxy_tags: []
# List tags for your role here, one per line. A tag is a keyword that describes
# and categorizes the role. Users find roles by searching for tags. Be sure to
# remove the '[]' above, if you add tags to this list.
#
# NOTE: A tag is limited to a single word comprised of alphanumeric characters.
# Maximum 20 tags per role.
galaxy_tags:
- distro
- system
dependencies: []
# List your role dependencies here, one per line. Be sure to remove the '[]' above,
# if you add dependencies to this list.

@ -3,5 +3,5 @@
hosts: all
tasks:
- name: "Include shnee.os_release"
include_role:
ansible.builtin.include_role:
name: "shnee.os_release"

@ -3,10 +3,18 @@ dependency:
name: galaxy
driver:
name: docker
lint: |
set -e
yamllint .
ansible-lint
platforms:
- name: instance
- name: centos-8-stream
image: quay.io/centos/centos:stream8
pre_build_image: true
- name: ubuntu
# TODO This is only a temporary measure until we get a better image.
image: tanquetav/ubuntu-ansible:latest
pre_build_image: true
provisioner:
name: ansible
verifier:

@ -3,8 +3,30 @@
- name: Verify
hosts: all
gather_facts: false
vars:
# exp_vals is dict where each top-level field corresponds to the name of the
# of the platforms defined in molecule.yml. The key-value pairs under the
# top-level will be used to test against the values in os_release.
exp_vals:
ubuntu:
ID: ubuntu
ID_LIKE: debian
VERSION_ID: '19.04'
centos-8-stream:
ID: centos
ID_LIKE: rhel fedora
VERSION_ID: '8'
roles:
- shnee.os_release
tasks:
- name: Example assertion
assert:
that: true
- name: Is the OS in exp_vals?
ansible.builtin.assert:
that: exp_vals[ansible_hostname] is defined
- name: Verify that os-release matches our expected values.
ansible.builtin.assert:
that: os_release[item.key] == item.value
loop: "{{ exp_vals[ansible_hostname] | dict2items }}"

@ -1,4 +1,9 @@
---
# tasks file for os_release
- debug:
msg: "System {{ inventory_hostname }} has uuid {{ ansible_product_uuid }}"
- name: Retrieve and parse the contents of /etc/os-release
ansible.netcommon.cli_parse:
command: cat /etc/os-release
parser:
name: ansible.netcommon.native
os: linux
command: cat os-release
set_fact: os_release

Loading…
Cancel
Save