From 23098ba15c76772d524d55ba6eab7ecdfcdeb1a1 Mon Sep 17 00:00:00 2001 From: Travis Truman Date: Thu, 11 Aug 2016 16:34:32 -0500 Subject: [PATCH] Ansible 2.1.1 role testing Change-Id: I61d7d438477e86d0a3b8ac294e35ba385d89c0e8 --- .../localhost.yml} | 16 ++---- tests/inventory | 10 ++-- tests/test-galera-server-functional.yml | 4 +- tests/test-prepare-containers.yml | 53 ------------------- tests/test-prepare-host.yml | 47 ---------------- tests/test-prepare-keys.yml | 33 ------------ tests/test-vars.yml | 10 ---- tests/test.yml | 15 ++---- tox.ini | 7 ++- 9 files changed, 23 insertions(+), 172 deletions(-) rename tests/{test-install-galera-server.yml => host_vars/localhost.yml} (70%) delete mode 100644 tests/test-prepare-containers.yml delete mode 100644 tests/test-prepare-host.yml delete mode 100644 tests/test-prepare-keys.yml delete mode 100644 tests/test-vars.yml diff --git a/tests/test-install-galera-server.yml b/tests/host_vars/localhost.yml similarity index 70% rename from tests/test-install-galera-server.yml rename to tests/host_vars/localhost.yml index b87eb299..65ddeaa0 100644 --- a/tests/test-install-galera-server.yml +++ b/tests/host_vars/localhost.yml @@ -13,15 +13,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -- name: Install galera server - hosts: galera_test_hosts - serial: 1 - user: root - gather_facts: true - pre_tasks: - - debug: - msg: "{{ message }}" - roles: - - role: "{{ rolename | basename }}" - vars_files: - - test-vars.yml +bridges: + - "br-mgmt" + +ansible_python_interpreter: "/usr/bin/python2" diff --git a/tests/inventory b/tests/inventory index fdb3b9ae..68acf971 100644 --- a/tests/inventory +++ b/tests/inventory @@ -1,13 +1,15 @@ [all] -localhost ansible_connection=local ansible_become=True +localhost ansible_become=True container1 ansible_ssh_host=10.100.100.101 ansible_host=10.100.100.101 ansible_become=True ansible_user=root container2 ansible_ssh_host=10.100.100.102 ansible_host=10.100.100.102 ansible_become=True ansible_user=root container3 ansible_ssh_host=10.100.100.103 ansible_host=10.100.100.103 ansible_become=True ansible_user=root -[galera_test_hosts] +[galera_all] container1 container2 container3 -[all_containers:children] -galera_test_hosts +[all_containers] +container1 +container2 +container3 diff --git a/tests/test-galera-server-functional.yml b/tests/test-galera-server-functional.yml index 2889bdc5..c08d0071 100644 --- a/tests/test-galera-server-functional.yml +++ b/tests/test-galera-server-functional.yml @@ -14,7 +14,7 @@ # limitations under the License. - name: Run functional tests - hosts: galera_test_hosts + hosts: galera_all user: root gather_facts: true tasks: @@ -73,4 +73,4 @@ - "%" when: ansible_ssh_host == '10.100.100.102' vars_files: - - test-vars.yml + - playbooks/test-vars.yml diff --git a/tests/test-prepare-containers.yml b/tests/test-prepare-containers.yml deleted file mode 100644 index d316c1f8..00000000 --- a/tests/test-prepare-containers.yml +++ /dev/null @@ -1,53 +0,0 @@ ---- -# Copyright 2016, Rackspace US, Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -- name: Create test containers - hosts: all_containers - gather_facts: false - pre_tasks: - - name: Destroy test containers - lxc_container: - name: "{{ container_name }}" - state: "absent" - delegate_to: "{{ physical_host }}" - tags: - - container-destroy - - name: Destroy container service directories - file: - path: "{{ item }}" - state: "absent" - with_items: - - "/openstack/{{ container_name }}" - - "/openstack/backup/{{ container_name }}" - - "/openstack/log/{{ container_name }}" - - "/var/lib/lxc/{{ container_name }}" - - "{{ lxc_container_directory|default('/var/lib/lxc') }}/{{ container_name }}" - delegate_to: "{{ physical_host }}" - tags: - - container-directories - roles: - - role: "lxc_container_create" - lxc_container_release: trusty - lxc_container_backing_store: dir - global_environment_variables: - PATH: "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" - post_tasks: - - name: Wait for ssh to be available - local_action: - module: wait_for - port: "{{ ansible_ssh_port | default('22') }}" - host: "{{ ansible_ssh_host | default(inventory_hostname) }}" - search_regex: OpenSSH - delay: 1 diff --git a/tests/test-prepare-host.yml b/tests/test-prepare-host.yml deleted file mode 100644 index 3c4c48d3..00000000 --- a/tests/test-prepare-host.yml +++ /dev/null @@ -1,47 +0,0 @@ ---- -# Copyright 2016, Rackspace US, Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -- name: Perform basic LXC host setup - hosts: localhost - pre_tasks: - - name: Ensure apt cache is always refreshed - apt: - update_cache: yes - when: - - ansible_pkg_mgr == 'apt' - - name: Ensure root's new public ssh key is in authorized_keys - authorized_key: - user: root - key: "{{ hostvars['localhost']['lxc_container_ssh_key'] }}" - manage_dir: no - - set_fact: - lxc_container_ssh_key: "{{ hostvars['localhost']['lxc_container_ssh_key'] }}" - - name: Check if this is an OpenStack-CI nodepool instance - stat: - path: /etc/nodepool/provider - register: nodepool - - name: Set the files to copy into the container cache for OpenStack-CI instances - set_fact: - lxc_container_cache_files: - - { src: '/etc/pip.conf', dest: '/etc/pip.conf' } - when: - - nodepool.stat.exists | bool - roles: - - role: "lxc_hosts" - lxc_net_address: 10.100.100.1 - lxc_net_dhcp_range: 10.100.100.2,10.100.100.100 - lxc_net_bridge: lxcbr0 - lxc_kernel_options: - - { key: 'fs.inotify.max_user_instances', value: 1024 } diff --git a/tests/test-prepare-keys.yml b/tests/test-prepare-keys.yml deleted file mode 100644 index f4df126d..00000000 --- a/tests/test-prepare-keys.yml +++ /dev/null @@ -1,33 +0,0 @@ ---- -# Copyright 2016, Rackspace US, Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# NOTE: we use become_user because setting become: no or become: false -# doesn't seem to override the ansible_become=true in the -# inventory -- name: Create ssh key pairs for use with containers - hosts: localhost - become_user: "{{ ansible_ssh_user }}" - tasks: - - name: Create ssh key pair for root - user: - name: "{{ ansible_ssh_user }}" - generate_ssh_key: "yes" - ssh_key_bits: 2048 - ssh_key_file: ".ssh/id_rsa" - - name: get the calling users key - command: cat ~/.ssh/id_rsa.pub - register: key_get - - set_fact: - lxc_container_ssh_key: "{{ key_get.stdout }}" diff --git a/tests/test-vars.yml b/tests/test-vars.yml deleted file mode 100644 index 1437bf9e..00000000 --- a/tests/test-vars.yml +++ /dev/null @@ -1,10 +0,0 @@ -galera_cluster_members: "{{ groups['galera_test_hosts'] }}" -galera_root_password: secrete -galera_root_user: root -galera_innodb_buffer_pool_size: 512M -galera_innodb_log_buffer_size: 32M -galera_server_id: "{{ inventory_hostname | string_2_int }}" -galera_wsrep_node_name: "{{ inventory_hostname }}" -galera_wsrep_provider_options: - - { option: "gcache.size", value: "32M" } -galera_server_id: "{{ inventory_hostname | string_2_int }}" diff --git a/tests/test.yml b/tests/test.yml index aa1a4445..5d8d10c9 100644 --- a/tests/test.yml +++ b/tests/test.yml @@ -13,19 +13,14 @@ # See the License for the specific language governing permissions and # limitations under the License. -# Prepare the user ssh keys -- include: test-prepare-keys.yml +# Setup the host +- include: playbooks/test-setup-host.yml -# Prepare the host -- include: test-prepare-host.yml - -# Run container clean up and build -- include: test-prepare-containers.yml +# Prepare the containers +- include: playbooks/test-prepare-containers.yml # Install Galera server -- include: test-install-galera-server.yml - vars: - message: "===== Running Current MariaDB Deployment =====" +- include: playbooks/test-install-galera.yml # Run functional tests - include: test-galera-server-functional.yml diff --git a/tox.ini b/tox.ini index 7ac9e0ee..76fcdf28 100644 --- a/tox.ini +++ b/tox.ini @@ -103,7 +103,7 @@ commands = [testenv:ansible] deps = {[testenv]deps} - ansible==1.9.4 + ansible==2.1.1 ansible-lint>=2.7.0,<3.0.0 setenv = {[testenv]setenv} @@ -130,6 +130,11 @@ commands = ansible-galaxy install \ --role-file={toxinidir}/tests/ansible-role-requirements.yml \ --force + rm -rf {homedir}/.ansible/roles/galera_server + bash -c "ln -s {toxinidir} {homedir}/.ansible/roles/galera_server" + rm -rf {toxinidir}/tests/playbooks + git clone https://git.openstack.org/openstack/openstack-ansible-tests \ + {toxinidir}/tests/playbooks [testenv:ansible-syntax]