--- # Copyright (c) Ansible Project # GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt) # SPDX-License-Identifier: GPL-3.0-or-later - name: Skip unsupported platforms meta: end_play # TODO: figure out why Alpine does not work! when: | ansible_distribution == 'CentOS' and ansible_distribution_major_version is not version('7', '>=') or ansible_distribution == 'Alpine' - name: Install Nomad and test vars: nomad_version: 0.12.4 nomad_uri: https://releases.hashicorp.com/nomad/{{ nomad_version }}/nomad_{{ nomad_version }}_{{ ansible_system | lower }}_{{ nomad_arch }}.zip nomad_cmd: '{{ remote_tmp_dir }}/nomad' block: - name: Install requests<2.20 (CentOS/RHEL 6) pip: name: requests<2.20 extra_args: "-c {{ remote_constraints }}" register: result until: result is success when: ansible_distribution_file_variety|default() == 'RedHat' and ansible_distribution_major_version is version('6', '<=') - name: Install python-nomad pip: name: python-nomad extra_args: "-c {{ remote_constraints }}" register: result until: result is success - name: Install jmespath pip: name: jmespath extra_args: "-c {{ remote_constraints }}" register: result until: result is success - name: Generate privatekey community.crypto.openssl_privatekey: path: '{{ remote_tmp_dir }}/privatekey.pem' - name: Generate CSR community.crypto.openssl_csr: path: '{{ remote_tmp_dir }}/csr.csr' privatekey_path: '{{ remote_tmp_dir }}/privatekey.pem' subject: commonName: localhost - name: Generate selfsigned certificate register: selfsigned_certificate community.crypto.x509_certificate: path: '{{ remote_tmp_dir }}/cert.pem' csr_path: '{{ remote_tmp_dir }}/csr.csr' privatekey_path: '{{ remote_tmp_dir }}/privatekey.pem' provider: selfsigned selfsigned_digest: sha256 - name: Install unzip package: name: unzip register: result until: result is success when: ansible_distribution != "MacOSX" - assert: that: ansible_architecture in ['i386', 'x86_64', 'amd64'] - set_fact: nomad_arch: '386' when: ansible_architecture == 'i386' - set_fact: nomad_arch: amd64 when: ansible_architecture in ['x86_64', 'amd64'] - name: Download nomad binary unarchive: src: '{{ nomad_uri }}' dest: '{{ remote_tmp_dir }}' remote_src: true register: result until: result is success - vars: remote_dir: '{{ echo_remote_tmp_dir.stdout }}' block: - command: echo {{ remote_tmp_dir }} register: echo_remote_tmp_dir - name: Run tests integration block: - name: Start nomad (dev mode enabled) shell: nohup {{ nomad_cmd }} agent -dev /dev/null 2>&1 & - name: wait nomad up wait_for: host: localhost port: 4646 delay: 10 timeout: 60 - import_tasks: nomad_job.yml always: - name: kill nomad shell: pkill nomad