openstack-ansible-tests/test-prepare-host.yml
Andy McCrae 44547e2696 Fix the central repository to work with CentOS
Add interface drop for CentOS (Will need to be extended to allow
multiple interfaces)
Add network config files based on ansible_os_family.
Add nodepool tasks for CentOS
Add a default network file for both CentOS and Ubuntu

Change-Id: Ideb84f153fbd9f8f83ff39042f139b25719b39d8
2016-09-02 15:04:43 +00:00

94 lines
3.2 KiB
YAML

---
# Copyright 2015, 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: Playbook for configuring the LXC host
hosts: localhost
pre_tasks:
- include: "common-tasks/test-force-package-cache-update.yml"
- include: "common-tasks/test-set-nodepool-vars.yml"
- name: Clear iptables rules
shell: "{{ playbook_dir }}/iptables-clear.sh"
- set_fact:
lxc_container_ssh_key: "{{ hostvars['localhost']['lxc_container_ssh_key'] }}"
- name: Ensure roots new public ssh key is in authorized_keys
authorized_key:
user: root
key: "{{ hostvars['localhost']['lxc_container_ssh_key'] }}"
manage_dir: no
roles:
- role: "lxc_hosts"
lxc_net_address: 10.100.100.1
lxc_net_dhcp_range: 10.100.100.8,10.100.100.253
lxc_net_bridge: lxcbr0
post_tasks:
- name: Ensure that /etc/network/interfaces.d/ exists
file:
path: /etc/network/interfaces.d/
state: directory
tags:
- networking-dir-create
- name: Copy network configuration (Debian)
template:
src: "{{ network_conf_filename }}"
dest: /etc/network/interfaces.d/test_interfaces.cfg
register: network_interfaces_deb
when:
- network_conf_filename is defined
- ansible_pkg_mgr == 'apt'
- name: Copy network configuration (RedHat)
template:
src: "{{ network_conf_filename }}"
dest: /etc/sysconfig/network-scripts/ifcfg-br-mgmt
register: network_interfaces_rhel
when:
- network_conf_filename is defined
- ansible_pkg_mgr == 'yum'
- name: Ensure our interfaces.d configuration files are loaded automatically
lineinfile:
dest: /etc/network/interfaces
line: "source /etc/network/interfaces.d/*.cfg"
when:
- ansible_pkg_mgr == 'apt'
tags:
- networking-interfaces-load
- name: Shut down the network interfaces
command: "ifdown {{ item }}"
when:
- (network_interfaces_rhel | changed) or (network_interfaces_deb | changed)
- network_conf_filename is defined
with_items: bridges
- name: Start the network interfaces
command: "ifup {{ item }}"
when:
- (network_interfaces_rhel | changed) or (network_interfaces_deb | changed)
- network_conf_filename is defined
with_items: bridges
- name: Add iptables rule to ensure ssh checksum is correct
command: /sbin/iptables -A POSTROUTING -t mangle -p tcp --dport 22 -j CHECKSUM --checksum-fill
- name: Add iptables rules for lxc natting
command: /usr/local/bin/lxc-system-manage iptables-create
- name: Add iptables rules for lxc natting
command: /usr/local/bin/lxc-system-manage iptables-create
vars_files:
- test-vars.yml