diff --git a/.ansible-lint b/.ansible-lint index 2394b2a..f1e5c61 100644 --- a/.ansible-lint +++ b/.ansible-lint @@ -1,6 +1,7 @@ +--- # .ansible-lint warn_list: - - '204' # Lines should be less than 160 characters - - '701' # meta/main.yml should contain relevant info + - '204' # Lines should be less than 160 characters + - '701' # meta/main.yml should contain relevant info skip_list: - - '106' # Role name must match ^[a-z][a-z0-9_]+$ pattern + - '106' # Role name must match ^[a-z][a-z0-9_]+$ pattern diff --git a/init-rocky-openqa-developer-host.yml b/init-rocky-openqa-developer-host.yml index b946e2b..d113ea4 100644 --- a/init-rocky-openqa-developer-host.yml +++ b/init-rocky-openqa-developer-host.yml @@ -24,16 +24,17 @@ # This is to try to avoid the handler issue in pre/post tasks handlers: - - import_tasks: handlers/main.yml + - name: Import handlers + ansible.builtin.import_tasks: handlers/main.yml pre_tasks: - name: Check if ansible cannot be run here - stat: + ansible.builtin.stat: path: /etc/no-ansible register: no_ansible - name: Verify if we can run ansible - assert: + ansible.builtin.assert: that: - "not no_ansible.stat.exists" success_msg: "We are able to run on this node" @@ -41,13 +42,14 @@ tasks: - name: Install and configure OpenQA - import_tasks: tasks/openqa.yml + ansible.builtin.import_tasks: tasks/openqa.yml + - name: Apply Rocky Linux OpenQA Branding - import_tasks: tasks/openqa_branding.yml + ansible.builtin.import_tasks: tasks/openqa_branding.yml post_tasks: - name: Touching run file that ansible has ran here - file: + ansible.builtin.file: path: /var/log/ansible.run state: touch mode: '0644' diff --git a/init-rocky-openqa-worker-host.yml b/init-rocky-openqa-worker-host.yml index fc35aa3..74bfb05 100644 --- a/init-rocky-openqa-worker-host.yml +++ b/init-rocky-openqa-worker-host.yml @@ -18,16 +18,17 @@ # This is to try to avoid the handler issue in pre/post tasks handlers: - - import_tasks: handlers/main.yml + - name: Import handlers + ansible.builtin.import_tasks: handlers/main.yml pre_tasks: - name: Check if ansible cannot be run here - stat: + ansible.builtin.stat: path: /etc/no-ansible register: no_ansible - name: Verify if we can run ansible - assert: + ansible.builtin.assert: that: - "not no_ansible.stat.exists" success_msg: "We are able to run on this node" @@ -35,11 +36,11 @@ tasks: - name: Install and configure OpenQA workers - import_tasks: tasks/openqa-worker.yml + ansible.builtin.import_tasks: tasks/openqa-worker.yml post_tasks: - name: Touching run file that ansible has ran here - file: + ansible.builtin.file: path: /var/log/ansible.run state: touch mode: '0644' diff --git a/tasks/main.yml b/tasks/main.yml deleted file mode 100644 index 68a6567..0000000 --- a/tasks/main.yml +++ /dev/null @@ -1,4 +0,0 @@ ---- -# No tasks -- debug: msg="No tasks are provided here. Please import the task as needed in your playbook." -... diff --git a/tasks/openqa-worker.yml b/tasks/openqa-worker.yml index 1b10e38..3024af3 100644 --- a/tasks/openqa-worker.yml +++ b/tasks/openqa-worker.yml @@ -1,25 +1,25 @@ --- - name: Install OpenQA worker packages - dnf: + ansible.builtin.dnf: name: "{{ openqa_worker_packages }}" state: present tags: - packages - name: Create openQA group - group: + ansible.builtin.group: name: "{{ openqa_group }}" system: true - name: Create openQA user - user: + ansible.builtin.user: name: "{{ openqa_user }}" groups: "{{ openqa_group }}" append: true system: true - name: Configure firewalld for openQA worker connections - template: + ansible.builtin.template: src: etc/firewalld/services/{{ item }}.xml.j2 dest: /etc/firewalld/services/{{ item }}.xml owner: root @@ -32,7 +32,7 @@ - configure - name: Reload firewalld - systemd: + ansible.builtin.systemd: name: firewalld state: reloaded tags: @@ -40,7 +40,7 @@ ignore_errors: "{{ ansible_check_mode }}" - name: Write openQA configuration file - template: + ansible.builtin.template: src: etc/openqa/{{ item }}.j2 dest: /etc/openqa/{{ item }} owner: "{{ openqa_user }}" @@ -52,13 +52,13 @@ tags: - configure -- name: Start {{ openqa_worker_count }} openQA workers +- name: Start openQA workers ansible.builtin.systemd: name: "openqa-worker@{{ item }}" state: started enabled: true # range "end" parameter is exclusive, so add 1 - loop: "{{ range(1, (openqa_worker_count|int + 1)) | list }}" + loop: "{{ range(1, (openqa_worker_count | int + 1)) | list }}" tags: - start_workers - configure diff --git a/tasks/openqa.yml b/tasks/openqa.yml index 27d3585..f449fc1 100644 --- a/tasks/openqa.yml +++ b/tasks/openqa.yml @@ -1,13 +1,13 @@ --- - name: Install OpenQA packages - yum: + ansible.builtin.yum: name: "{{ openqa_packages }}" state: present tags: - packages - name: Copy httpd configuration files - copy: + ansible.builtin.copy: remote_src: true src: /etc/httpd/conf.d/{{ item }}.template dest: /etc/httpd/conf.d/{{ item }} @@ -22,7 +22,7 @@ - configure - name: Template OpenQA configuration files - template: + ansible.builtin.template: src: etc/openqa/{{ item }}.j2 dest: /etc/openqa/{{ item }} owner: "{{ openqa_user }}" @@ -35,20 +35,21 @@ - configure - name: Get service facts - service_facts: + ansible.builtin.service_facts: - name: Check for non-empty postgres data directory - stat: + ansible.builtin.stat: path: /var/lib/pgsql/data/base register: postgres_data_dir - name: If postgresql is not already running, initialize database - command: postgresql-setup --initdb + ansible.builtin.command: postgresql-setup --initdb when: not ( ansible_facts.services["postgresql.service"]["state"] == "running" ) and not postgres_data_dir.stat.exists + changed_when: true - name: Enable and start postgresql service - systemd: + ansible.builtin.systemd: name: postgresql state: started enabled: true @@ -56,7 +57,7 @@ and not postgres_data_dir.stat.exists - name: Configure SELinux to allow httpd connection to network - seboolean: + ansible.posix.seboolean: name: httpd_can_network_connect state: true persistent: true @@ -64,7 +65,7 @@ - configure - name: Enable and start OpenQA services - systemd: + ansible.builtin.systemd: name: "{{ item }}" state: started enabled: true @@ -73,7 +74,7 @@ - configure - name: Create openqa-vnc firewalld service - template: + ansible.builtin.template: src: etc/firewalld/services/openqa-vnc.xml.j2 dest: /etc/firewalld/services/openqa-vnc.xml owner: root @@ -83,13 +84,13 @@ - configure - name: Load openqa-vnc firewalld service - systemd: + ansible.builtin.systemd: name: firewalld state: reloaded tags: - configure -- name: Permit traffic for {{ item }} service +- name: Permit traffic for http and openqa-vnc services ansible.posix.firewalld: service: "{{ item }}" permanent: true @@ -101,21 +102,21 @@ - configure - name: Reload FirewallD - systemd: + ansible.builtin.systemd: name: firewalld state: reloaded tags: - configure - name: Check for existing repository - stat: + ansible.builtin.stat: path: "{{ openqa_homedir }}/share/tests/rocky" register: rocky_testing_repo tags: - configure - name: Clone repository if it does not already exist - git: + ansible.builtin.git: accept_hostkey: true dest: "{{ openqa_homedir }}/share/tests/rocky" repo: "{{ openqa_rocky_testing_repo }}" @@ -125,7 +126,7 @@ - configure - name: Set owner/group/permissions on repo contents - file: + ansible.builtin.file: path: "{{ openqa_homedir }}/share/tests/rocky" recurse: true owner: "{{ openqa_user }}" @@ -136,17 +137,17 @@ # fifloader.py will fail if the Demo user is not logged in - name: Authenticate to web UI the first time - uri: + ansible.builtin.uri: url: "http://{{ openqa_host }}/login" - name: Run fifloader.py - command: ./fifloader.py -l -c templates.fif.json templates-updates.fif.json + ansible.builtin.command: ./fifloader.py -l -c templates.fif.json templates-updates.fif.json changed_when: "1 != 1" args: chdir: "{{ openqa_homedir }}/share/tests/rocky" - name: Create ISO directory - file: + ansible.builtin.file: path: "{{ openqa_homedir }}/share/factory/iso/fixed" state: directory owner: "{{ openqa_user }}" @@ -156,7 +157,7 @@ - download_isos - name: Download ISOs - get_url: + ansible.builtin.get_url: dest: "{{ openqa_homedir }}/share/factory/iso/fixed/{{ item.name }}" url: "{{ rocky_iso_download_url }}/{{ item.name }}" checksum: "{{ item.checksum }}" @@ -168,19 +169,19 @@ tags: - download_isos -- name: Start {{ openqa_worker_count }} OpenQA workers +- name: Start OpenQA workers ansible.builtin.systemd: name: "openqa-worker@{{ item }}" state: started enabled: true # range 'end' parameter is exclusive, so add 1 - loop: "{{ range(1, (openqa_worker_count|int + 1)) | list }}" + loop: "{{ range(1, (openqa_worker_count | int + 1)) | list }}" tags: - start_workers - configure - name: POST a job - command: | + ansible.builtin.command: | openqa-cli api -X POST isos \ ISO=Rocky-{{ rocky_version }}-{{ rocky_arch }}-minimal.iso \ ARCH={{ rocky_arch }} \ diff --git a/tests/test.yml b/tests/test.yml index 27fe873..33b2182 100644 --- a/tests/test.yml +++ b/tests/test.yml @@ -1,5 +1,9 @@ --- -- hosts: localhost +- name: Run tests + hosts: localhost remote_user: root tasks: - - import_tasks: example.yml + - name: Ensure required variables are defined + ansible.builtin.assert: + that: + - openqa_host is defined diff --git a/vars/openqa-worker.yml b/vars/openqa-worker.yml index be216d2..ddbc3e3 100644 --- a/vars/openqa-worker.yml +++ b/vars/openqa-worker.yml @@ -15,7 +15,7 @@ openqa_worker_count: 1 # The max port should be 5990 + n where n is the total # number of workers you want to enable on your system. openqa_min_vnc_port: 5991 -openqa_max_vnc_port: "{{ 5990 + openqa_worker_count|int }}" +openqa_max_vnc_port: "{{ 5990 + openqa_worker_count | int }}" # Port range to open for socket connections from the primary host. openqa_min_socket_port: 20000 @@ -23,14 +23,13 @@ openqa_max_socket_port: 20089 # Packages to install openqa_worker_packages: + - firewalld - guestfs-tools - libguestfs-xfs - libvirt-daemon-config-network - - virt-install - openqa-worker - perl-REST-Client - python3-libguestfs - virt-install - withlock - - firewalld ... diff --git a/vars/openqa.yml b/vars/openqa.yml index af1ed1b..9a908f3 100644 --- a/vars/openqa.yml +++ b/vars/openqa.yml @@ -45,7 +45,7 @@ openqa_worker_count: 1 # The max port should be 5990 + n where n is the total # number of workers you want to enable on your system. openqa_min_vnc_port: 5991 -openqa_max_vnc_port: "{{ 5990 + openqa_worker_count|int }}" +openqa_max_vnc_port: "{{ 5990 + openqa_worker_count | int }}" # Packages to install openqa_packages: