From abe3f4e5e6a6f4f278950cd0fe048e148c14aaf2 2018-06-03 11:52:16 From: Branko Majic Date: 2018-06-03 11:52:16 Subject: [PATCH] MAR-129: Updated preseed role for Ansible 2.5.x and new Molecule: - Include top-level linting configuration in test configuration. - Fixed linting errors. - Moved test playbook variables into group_vars. - Updated how hosts are referenced in tests. --- diff --git a/roles/preseed/defaults/main.yml b/roles/preseed/defaults/main.yml index d2f5dfa16737be38caace50dd60b7ddf9df19d7e..c48e6145ad407ac1024aa7a657ab17c4dd09c288 100644 --- a/roles/preseed/defaults/main.yml +++ b/roles/preseed/defaults/main.yml @@ -9,7 +9,7 @@ preseed_locale: en_US.UTF-8 preseed_mirror_directory: /debian preseed_mirror_hostname: ftp.se.debian.org preseed_mirror_proxy: "" -preseed_network_auto: yes +preseed_network_auto: true preseed_network_interface: eth0 preseed_root_password: root preseed_server_overrides: {} diff --git a/roles/preseed/molecule/default/create.yml b/roles/preseed/molecule/default/create.yml index f8eb37cd4df02c540216c02791d0c50870986202..ce8657f9bae3be7f42731fd1efe77e87a62afcd9 100644 --- a/roles/preseed/molecule/default/create.yml +++ b/roles/preseed/molecule/default/create.yml @@ -2,7 +2,7 @@ - name: Create hosts: localhost connection: local - gather_facts: False + gather_facts: false no_log: "{{ not lookup('env', 'MOLECULE_DEBUG') | bool }}" vars: molecule_file: "{{ lookup('env', 'MOLECULE_FILE') }}" diff --git a/roles/preseed/molecule/default/destroy.yml b/roles/preseed/molecule/default/destroy.yml index 3972a2df8fafe515b30a74f951499b83aae8449c..8f0a3703672765e77f4f1a3a8046a1f2b561a7a8 100644 --- a/roles/preseed/molecule/default/destroy.yml +++ b/roles/preseed/molecule/default/destroy.yml @@ -3,7 +3,7 @@ - name: Destroy hosts: localhost connection: local - gather_facts: False + gather_facts: false no_log: "{{ not lookup('env', 'MOLECULE_DEBUG') | bool }}" vars: molecule_file: "{{ lookup('env', 'MOLECULE_FILE') }}" diff --git a/roles/preseed/molecule/default/group_vars/parameters-mandatory.yml b/roles/preseed/molecule/default/group_vars/parameters-mandatory.yml new file mode 100644 index 0000000000000000000000000000000000000000..ed97d539c095cf1413af30cc23dea272095b97dd --- /dev/null +++ b/roles/preseed/molecule/default/group_vars/parameters-mandatory.yml @@ -0,0 +1 @@ +--- diff --git a/roles/preseed/molecule/default/group_vars/parameters-optional-with-overrides.yml b/roles/preseed/molecule/default/group_vars/parameters-optional-with-overrides.yml new file mode 100644 index 0000000000000000000000000000000000000000..c550937c238174908292ab978b11e059eb89fa9e --- /dev/null +++ b/roles/preseed/molecule/default/group_vars/parameters-optional-with-overrides.yml @@ -0,0 +1,23 @@ +--- + +preseed_directory: /tmp/custom_preseed_files_location +ansible_key: CUSTOMKEY +preseed_server_overrides: + parameters-optional-with-overrides-jessie64: + country: RS + dns: 1.1.1.1 + domain: example.com + gateway: 2.2.2.2 + hostname: testing + ip: 3.3.3.3 + keymap: sv + language: sr + locale: en_UK.UTF-8 + mirror_directory: / + mirror_hostname: ftp.de.debian.org + mirror_proxy: http://proxy.local + netmask: 255.255.0.0 + network_auto: false + network_interface: eth1 + root_password: myrootpassword + timezone: Europe/Belgrade diff --git a/roles/preseed/molecule/default/group_vars/parameters-optional.yml b/roles/preseed/molecule/default/group_vars/parameters-optional.yml new file mode 100644 index 0000000000000000000000000000000000000000..476d5be7d0d83b463fee1250e9978b8599ed9957 --- /dev/null +++ b/roles/preseed/molecule/default/group_vars/parameters-optional.yml @@ -0,0 +1,21 @@ +--- + +ansible_key: CUSTOMKEY +preseed_country: RS +preseed_directory: /tmp/custom_preseed_files_location +preseed_dns: 1.1.1.1 +preseed_domain: example.com +preseed_gateway: 2.2.2.2 +preseed_hostname: testing +preseed_ip: 3.3.3.3 +preseed_keymap: sv +preseed_language: sr +preseed_locale: en_UK.UTF-8 +preseed_mirror_directory: / +preseed_mirror_hostname: ftp.de.debian.org +preseed_mirror_proxy: http://proxy.local +preseed_netmask: 255.255.0.0 +preseed_network_auto: false +preseed_network_interface: eth1 +preseed_root_password: myrootpassword +preseed_timezone: Europe/Belgrade diff --git a/roles/preseed/molecule/default/molecule.yml b/roles/preseed/molecule/default/molecule.yml index e681caea407ce4919edec6a6f8f7f80fc1e4dd67..b8d870564be62264ca335d831658ec91a84fcd7d 100644 --- a/roles/preseed/molecule/default/molecule.yml +++ b/roles/preseed/molecule/default/molecule.yml @@ -9,6 +9,8 @@ driver: lint: name: yamllint + options: + config-file: ../../.yamllint.yml platforms: diff --git a/roles/preseed/molecule/default/playbook.yml b/roles/preseed/molecule/default/playbook.yml index daf771c9fa3d333934497134be9c04e90e72141f..2c22a1f59ada6422fcbe90612b0d29a36feb5b39 100644 --- a/roles/preseed/molecule/default/playbook.yml +++ b/roles/preseed/molecule/default/playbook.yml @@ -1,53 +1,5 @@ --- -- hosts: parameters-mandatory +- hosts: parameters-mandatory,parameters-optional,parameters-optional-with-overrides roles: - - role: preseed - -- hosts: parameters-optional - roles: - - role: preseed - ansible_key: CUSTOMKEY - preseed_country: RS - preseed_directory: /tmp/custom_preseed_files_location - preseed_dns: 1.1.1.1 - preseed_domain: example.com - preseed_gateway: 2.2.2.2 - preseed_hostname: testing - preseed_ip: 3.3.3.3 - preseed_keymap: sv - preseed_language: sr - preseed_locale: en_UK.UTF-8 - preseed_mirror_directory: / - preseed_mirror_hostname: ftp.de.debian.org - preseed_mirror_proxy: http://proxy.local - preseed_netmask: 255.255.0.0 - preseed_network_auto: no - preseed_network_interface: eth1 - preseed_root_password: myrootpassword - preseed_timezone: Europe/Belgrade - -- hosts: parameters-optional-with-overrides - roles: - - role: preseed - preseed_directory: /tmp/custom_preseed_files_location - ansible_key: CUSTOMKEY - preseed_server_overrides: - parameters-optional-with-overrides-jessie64: - country: RS - dns: 1.1.1.1 - domain: example.com - gateway: 2.2.2.2 - hostname: testing - ip: 3.3.3.3 - keymap: sv - language: sr - locale: en_UK.UTF-8 - mirror_directory: / - mirror_hostname: ftp.de.debian.org - mirror_proxy: http://proxy.local - netmask: 255.255.0.0 - network_auto: no - network_interface: eth1 - root_password: myrootpassword - timezone: Europe/Belgrade + - preseed diff --git a/roles/preseed/molecule/default/prepare.yml b/roles/preseed/molecule/default/prepare.yml index 1fb02c5a75c1102e1477b28470ef180ef921a30d..a21b50d8757ea4235f69de635f118c5f2f1f7052 100644 --- a/roles/preseed/molecule/default/prepare.yml +++ b/roles/preseed/molecule/default/prepare.yml @@ -2,15 +2,15 @@ - name: Prepare hosts: all - gather_facts: False + gather_facts: false tasks: - name: Install python for Ansible raw: test -e /usr/bin/python || (apt -y update && apt install -y python-minimal) - become: True - changed_when: False + become: true + changed_when: false - hosts: parameters-mandatory - become: yes + become: true tasks: # @TODO: This is a hack because inventory_dir used for diff --git a/roles/preseed/molecule/default/tests/test_parameters_mandatory.py b/roles/preseed/molecule/default/tests/test_parameters_mandatory.py index f14e9ec826f3e12fcac6fdda8a17c1902e6b98df..afb52cb79dd68ab1dbe64a8dcd1de3f06c401ff8 100644 --- a/roles/preseed/molecule/default/tests/test_parameters_mandatory.py +++ b/roles/preseed/molecule/default/tests/test_parameters_mandatory.py @@ -4,7 +4,7 @@ import testinfra.utils.ansible_runner testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner( - '.molecule/ansible_inventory.yml').get_hosts('parameters-mandatory') + os.environ['MOLECULE_INVENTORY_FILE']).get_hosts(['parameters-mandatory']) def test_preseed_directory(host): diff --git a/roles/preseed/molecule/default/tests/test_parameters_optional.py b/roles/preseed/molecule/default/tests/test_parameters_optional.py index b8ecefdd613b0876501c04f219d430b3748927f6..2893a36ed336b073a6f11aee75f776312743bc3f 100644 --- a/roles/preseed/molecule/default/tests/test_parameters_optional.py +++ b/roles/preseed/molecule/default/tests/test_parameters_optional.py @@ -4,7 +4,7 @@ import testinfra.utils.ansible_runner testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner( - '.molecule/ansible_inventory.yml').get_hosts('parameters-optional') + os.environ['MOLECULE_INVENTORY_FILE']).get_hosts(['parameters-optional']) PRESEED_DIRECTORY = '/tmp/custom_preseed_files_location' diff --git a/roles/preseed/molecule/default/tests/test_parameters_optional_with_overrides.py b/roles/preseed/molecule/default/tests/test_parameters_optional_with_overrides.py index 9d39185c5df40e20a8f62b8afb5508762914331c..1a7c814df3e9ed27efc9cdcfd7e061d6fe219c30 100644 --- a/roles/preseed/molecule/default/tests/test_parameters_optional_with_overrides.py +++ b/roles/preseed/molecule/default/tests/test_parameters_optional_with_overrides.py @@ -4,7 +4,7 @@ import testinfra.utils.ansible_runner testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner( - '.molecule/ansible_inventory.yml').get_hosts('parameters-optional-with-overrides') + os.environ['MOLECULE_INVENTORY_FILE']).get_hosts(['parameters-optional-with-overrides']) PRESEED_DIRECTORY = '/tmp/custom_preseed_files_location'