#################################################################### # WARNING: These are designed specifically for Ansible tests # # and should not be used as examples of how to write Ansible roles # #################################################################### - name: Install Consul and test vars: consul_version: 1.5.0 consul_uri: https://s3.amazonaws.com/ansible-ci-files/test/integration/targets/consul/consul_{{ consul_version }}_{{ ansible_system | lower }}_{{ consul_arch }}.zip consul_cmd: '{{ remote_tmp_dir }}/consul' block: - name: register pyOpenSSL version command: '{{ ansible_python_interpreter }} -c ''import OpenSSL; print(OpenSSL.__version__)''' register: pyopenssl_version - 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-consul pip: name: python-consul extra_args: "-c {{ remote_constraints }}" register: result until: result is success - when: pyopenssl_version.stdout is version('0.15', '>=') block: - 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: consul_arch: '386' when: ansible_architecture == 'i386' - set_fact: consul_arch: amd64 when: ansible_architecture in ['x86_64', 'amd64'] - name: Download consul binary unarchive: src: '{{ consul_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: Create configuration file template: src: consul_config.hcl.j2 dest: '{{ remote_tmp_dir }}/consul_config.hcl' - name: Start Consul (dev mode enabled) shell: nohup {{ consul_cmd }} agent -dev -config-file {{ remote_tmp_dir }}/consul_config.hcl /dev/null 2>&1 & - name: Create some data command: '{{ consul_cmd }} kv put data/value{{ item }} foo{{ item }}' loop: - 1 - 2 - 3 - import_tasks: consul_session.yml always: - name: Kill consul process shell: kill $(cat {{ remote_tmp_dir }}/consul.pid) ignore_errors: true