Add CentOS support for AIO setup
This patch add support for deploying on CentOS. Change-Id: I1763351a95bb3c30bcb1095fad0fedff72c1a751
This commit is contained in:
parent
f67dfa4c1e
commit
e44a7f1ac4
@ -24,12 +24,13 @@ Install one of the following supported operating systems on the deployment
|
|||||||
hosts:
|
hosts:
|
||||||
|
|
||||||
* `Ubuntu server 16.04 (Xenial Xerus) LTS 64-bit <http://releases.ubuntu.com/16.04/>`_
|
* `Ubuntu server 16.04 (Xenial Xerus) LTS 64-bit <http://releases.ubuntu.com/16.04/>`_
|
||||||
|
* `Centos 7 64-bit <https://www.centos.org/download/>`_
|
||||||
|
|
||||||
Configure at least one network interface to access the Internet or suitable
|
Configure at least one network interface to access the Internet or suitable
|
||||||
local repositories.
|
local repositories.
|
||||||
|
|
||||||
Configure the operating system
|
Configure the operating system (Ubuntu)
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
Install additional software packages and configure Network Time Protocol (NTP).
|
Install additional software packages and configure Network Time Protocol (NTP).
|
||||||
Before you begin, we recommend upgrading your system packages and kernel.
|
Before you begin, we recommend upgrading your system packages and kernel.
|
||||||
@ -40,6 +41,7 @@ Before you begin, we recommend upgrading your system packages and kernel.
|
|||||||
|
|
||||||
# apt-get update
|
# apt-get update
|
||||||
|
|
||||||
|
|
||||||
#. Upgrade the system packages and kernel:
|
#. Upgrade the system packages and kernel:
|
||||||
|
|
||||||
.. code-block:: shell-session
|
.. code-block:: shell-session
|
||||||
@ -58,6 +60,30 @@ Before you begin, we recommend upgrading your system packages and kernel.
|
|||||||
|
|
||||||
#. Configure NTP to synchronize with a suitable time source.
|
#. Configure NTP to synchronize with a suitable time source.
|
||||||
|
|
||||||
|
Configure the operating system (CentOS)
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
Install additional software packages and configure Network Time Protocol (NTP).
|
||||||
|
Before you begin, we recommend upgrading your system packages and kernel.
|
||||||
|
|
||||||
|
#. Upgrade the system packages and kernel
|
||||||
|
|
||||||
|
.. code-block:: shell-session
|
||||||
|
|
||||||
|
# yum upgrade
|
||||||
|
|
||||||
|
#. Reboot the host.
|
||||||
|
|
||||||
|
#. Install additional software packages if they were not installed
|
||||||
|
during the operating system installation:
|
||||||
|
|
||||||
|
.. code-block:: shell-session
|
||||||
|
|
||||||
|
# yum install git centos-release-openstack-newton ntp ntpdate \
|
||||||
|
openssh-server python-devel sudo '@Development Tools'
|
||||||
|
|
||||||
|
#. Configure NTP to synchronize with a suitable time source.
|
||||||
|
|
||||||
Configure the network
|
Configure the network
|
||||||
~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
@ -11,9 +11,17 @@ Software requirements
|
|||||||
Ensure that all hosts within an OpenStack-Ansible (OSA) environment meet the
|
Ensure that all hosts within an OpenStack-Ansible (OSA) environment meet the
|
||||||
following minimum requirements:
|
following minimum requirements:
|
||||||
|
|
||||||
* Ubuntu 16.04 LTS (Xenial Xerus)
|
* Ubuntu
|
||||||
|
|
||||||
* Linux kernel version ``3.13.0-34-generic`` or later is required.
|
* Ubuntu 16.04 LTS (Xenial Xerus)
|
||||||
|
|
||||||
|
* Linux kernel version ``3.13.0-34-generic`` or later is required.
|
||||||
|
|
||||||
|
* CentOS (support is experimental)
|
||||||
|
|
||||||
|
* Centos 7, fully updated.
|
||||||
|
|
||||||
|
* Linux kernel verison ``3.10.0`` or later.
|
||||||
|
|
||||||
* Secure Shell (SSH) client and server that support public key
|
* Secure Shell (SSH) client and server that support public key
|
||||||
authentication
|
authentication
|
||||||
|
@ -13,6 +13,7 @@ Install one of the following supported operating systems on the
|
|||||||
target host:
|
target host:
|
||||||
|
|
||||||
* Ubuntu server 16.04 (Xenial Xerus) LTS 64-bit
|
* Ubuntu server 16.04 (Xenial Xerus) LTS 64-bit
|
||||||
|
* Centos 7 64-bit
|
||||||
|
|
||||||
Configure at least one network interface to access the Internet or
|
Configure at least one network interface to access the Internet or
|
||||||
suitable local repositories.
|
suitable local repositories.
|
||||||
@ -25,8 +26,8 @@ installation on target hosts that do not have local (console) access.
|
|||||||
We also recommend setting your locale to `en_US.UTF-8`. Other locales might
|
We also recommend setting your locale to `en_US.UTF-8`. Other locales might
|
||||||
work, but they are not tested or supported.
|
work, but they are not tested or supported.
|
||||||
|
|
||||||
Configure the operating system
|
Configure the operating system (Ubuntu)
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
#. Update package source lists
|
#. Update package source lists
|
||||||
|
|
||||||
@ -72,6 +73,48 @@ Configure the operating system
|
|||||||
|
|
||||||
#. Reboot the host to activate the changes and use the new kernel.
|
#. Reboot the host to activate the changes and use the new kernel.
|
||||||
|
|
||||||
|
Configure the operating system (CentOS)
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
#. Upgrade the system packages and kernel:
|
||||||
|
|
||||||
|
.. code-block:: shell-session
|
||||||
|
|
||||||
|
# yum upgrade
|
||||||
|
|
||||||
|
#. Reboot the host.
|
||||||
|
|
||||||
|
#. Ensure that the kernel version is ``3.10`` or later:
|
||||||
|
|
||||||
|
.. code-block:: shell-session
|
||||||
|
|
||||||
|
# uname -r
|
||||||
|
|
||||||
|
#. Install additional software packages:
|
||||||
|
|
||||||
|
.. code-block:: shell-session
|
||||||
|
|
||||||
|
# yum install epel-release
|
||||||
|
# yum install bridge-utils debootstrap iputils lsof lvm2 \
|
||||||
|
ntp ntpdate openssh-server sudo tcpdump vconfig
|
||||||
|
|
||||||
|
#. Add the appropriate kernel modules to the ``/etc/modules`` file to
|
||||||
|
enable VLAN and bond interfaces:
|
||||||
|
|
||||||
|
.. code-block:: shell-session
|
||||||
|
|
||||||
|
# echo 'bonding' >> /etc/modules-load.d/openstack-ansible.conf
|
||||||
|
# echo '8021q' >> /etc/modules-load.d/openstack-ansible.conf
|
||||||
|
|
||||||
|
#. Configure Network Time Protocol (NTP) in ``/etc/ntp.conf`` to
|
||||||
|
synchronize with a suitable time source and restart the service:
|
||||||
|
|
||||||
|
.. code-block:: shell-session
|
||||||
|
|
||||||
|
# service ntpd restart
|
||||||
|
|
||||||
|
#. Reboot the host to activate the changes and use the new kernel.
|
||||||
|
|
||||||
Deploying Secure Shell (SSH) keys
|
Deploying Secure Shell (SSH) keys
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
@ -53,9 +53,17 @@ system packages are upgraded and then reboot into the new kernel:
|
|||||||
|
|
||||||
.. code-block:: shell-session
|
.. code-block:: shell-session
|
||||||
|
|
||||||
|
## Ubuntu
|
||||||
# apt-get dist-upgrade
|
# apt-get dist-upgrade
|
||||||
# reboot
|
# reboot
|
||||||
|
|
||||||
|
.. code-block:: shell-session
|
||||||
|
|
||||||
|
## CentOS
|
||||||
|
# yum upgrade
|
||||||
|
# yum install centos-release-openstack-newton git
|
||||||
|
# reboot
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
If you are installing with limited connectivity, please review
|
If you are installing with limited connectivity, please review
|
||||||
@ -91,7 +99,7 @@ version.
|
|||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
The |current_release_formal_name| release is only compatible with Ubuntu
|
The |current_release_formal_name| release is only compatible with Ubuntu
|
||||||
16.04 (Xenial Xerus).
|
16.04 (Xenial Xerus) and Centos 7.
|
||||||
|
|
||||||
By default the scripts deploy all OpenStack services with sensible defaults
|
By default the scripts deploy all OpenStack services with sensible defaults
|
||||||
for the purpose of a gate check, development or testing system.
|
for the purpose of a gate check, development or testing system.
|
||||||
|
@ -0,0 +1,4 @@
|
|||||||
|
---
|
||||||
|
features:
|
||||||
|
- There is now experimental support to deploy OpenStack-Ansible on CentOS 7 for both development
|
||||||
|
and test environments.
|
@ -62,6 +62,7 @@
|
|||||||
- name: neutron.yml.aio
|
- name: neutron.yml.aio
|
||||||
- name: nova.yml.aio
|
- name: nova.yml.aio
|
||||||
- name: swift.yml.aio
|
- name: swift.yml.aio
|
||||||
|
sftp_subsystem: "{{ (ansible_pkg_mgr == 'apt') | ternary('sftp /usr/lib/openssh/sftp-server','sftp /usr/libexec/openssh/sftp-server') }}"
|
||||||
sshd:
|
sshd:
|
||||||
ListenAddress:
|
ListenAddress:
|
||||||
- 0.0.0.0
|
- 0.0.0.0
|
||||||
@ -93,7 +94,7 @@
|
|||||||
PrintLastLog: no
|
PrintLastLog: no
|
||||||
TCPKeepAlive: yes
|
TCPKeepAlive: yes
|
||||||
AcceptEnv: "LANG LC_*"
|
AcceptEnv: "LANG LC_*"
|
||||||
Subsystem: "sftp /usr/lib/openssh/sftp-server"
|
Subsystem: "{{ sftp_subsystem }}"
|
||||||
UsePAM: yes
|
UsePAM: yes
|
||||||
UseDNS: no
|
UseDNS: no
|
||||||
X11Forwarding: no
|
X11Forwarding: no
|
||||||
@ -101,3 +102,6 @@
|
|||||||
CompressionLevel: 6
|
CompressionLevel: 6
|
||||||
MaxSessions: 100
|
MaxSessions: 100
|
||||||
MaxStartups: "100:100:100"
|
MaxStartups: "100:100:100"
|
||||||
|
GSSAPIAuthentication: no
|
||||||
|
GSSAPICleanupCredentials: no
|
||||||
|
|
||||||
|
@ -121,6 +121,22 @@ bootstrap_host_encapsulation_interfaces:
|
|||||||
friendly_name: "Encapsulation of br-vlan with VXLAN"
|
friendly_name: "Encapsulation of br-vlan with VXLAN"
|
||||||
#
|
#
|
||||||
# Bridges
|
# Bridges
|
||||||
|
bridges:
|
||||||
|
- name: "br-mgmt"
|
||||||
|
ip_addr: "172.29.236.100"
|
||||||
|
netmask: "255.255.252.0"
|
||||||
|
- name: "br-vxlan"
|
||||||
|
ip_addr: "172.29.240.100"
|
||||||
|
netmask: "255.255.252.0"
|
||||||
|
- name: "br-storage"
|
||||||
|
ip_addr: "172.29.244.100"
|
||||||
|
netmask: "255.255.252.0"
|
||||||
|
- name: "br-vlan"
|
||||||
|
ip_addr: "172.29.248.100"
|
||||||
|
alias: "172.29.248.1"
|
||||||
|
veth_peer: "eth12"
|
||||||
|
netmask: "255.255.252.0"
|
||||||
|
|
||||||
bootstrap_host_bridges_interfaces:
|
bootstrap_host_bridges_interfaces:
|
||||||
br-mgmt:
|
br-mgmt:
|
||||||
ports: "{{ bootstrap_host_encapsulation_enabled | bool | ternary ('encap-mgmt', bootstrap_host_bridge_mgmt_ports) }}"
|
ports: "{{ bootstrap_host_encapsulation_enabled | bool | ternary ('encap-mgmt', bootstrap_host_bridge_mgmt_ports) }}"
|
||||||
|
@ -1,77 +0,0 @@
|
|||||||
---
|
|
||||||
# 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: Ensure that apt supports HTTPS package sources
|
|
||||||
apt:
|
|
||||||
name: apt-transport-https
|
|
||||||
state: present
|
|
||||||
tags:
|
|
||||||
- apt-install-prerequisites
|
|
||||||
|
|
||||||
- name: Determine the existing Ubuntu repo configuration
|
|
||||||
command: 'grep -oP "^deb \K(\[?.*\]?.*ubuntu\S*\/?)(?= {{ ansible_distribution_release }} main)" /etc/apt/sources.list'
|
|
||||||
register: ubuntu_repo
|
|
||||||
when:
|
|
||||||
- bootstrap_host_ubuntu_repo is not defined
|
|
||||||
changed_when: false
|
|
||||||
tags:
|
|
||||||
- find-apt-repo
|
|
||||||
|
|
||||||
- name: Determine the existing Ubuntu Security repo configuration
|
|
||||||
command: 'grep -oP "^deb \K(\[?.*\]?.*ubuntu\S*\/?)(?= {{ ansible_distribution_release }}-security main)" /etc/apt/sources.list'
|
|
||||||
register: ubuntu_security_repo
|
|
||||||
when:
|
|
||||||
- bootstrap_host_ubuntu_security_repo is not defined
|
|
||||||
changed_when: false
|
|
||||||
tags:
|
|
||||||
- find-apt-security-repo
|
|
||||||
|
|
||||||
- name: Set apt repo facts based on discovered information
|
|
||||||
set_fact:
|
|
||||||
bootstrap_host_ubuntu_repo: "{{ ubuntu_repo.stdout_lines[0] }}"
|
|
||||||
bootstrap_host_ubuntu_security_repo: "{{ ubuntu_security_repo.stdout_lines[0] }}"
|
|
||||||
when:
|
|
||||||
- bootstrap_host_ubuntu_repo is not defined
|
|
||||||
- bootstrap_host_ubuntu_security_repo is not defined
|
|
||||||
- ubuntu_repo is defined
|
|
||||||
- ubuntu_security_repo is defined
|
|
||||||
|
|
||||||
- name: Configure apt's sources.list (Ubuntu only)
|
|
||||||
template:
|
|
||||||
src: apt-sources.list.j2
|
|
||||||
dest: /etc/apt/sources.list
|
|
||||||
backup: yes
|
|
||||||
when:
|
|
||||||
- ansible_distribution == 'Ubuntu'
|
|
||||||
- bootstrap_host_ubuntu_repo is defined
|
|
||||||
- bootstrap_host_ubuntu_security_repo is defined
|
|
||||||
register: apt_sources_configure
|
|
||||||
|
|
||||||
- name: Update apt-cache
|
|
||||||
apt:
|
|
||||||
update_cache: yes
|
|
||||||
when:
|
|
||||||
- apt_sources_configure is defined
|
|
||||||
- apt_sources_configure | changed
|
|
||||||
tags:
|
|
||||||
- apt-cache-update
|
|
||||||
|
|
||||||
- name: Remove known problem packages
|
|
||||||
apt:
|
|
||||||
name: "{{ item }}"
|
|
||||||
state: absent
|
|
||||||
with_items: "{{ packages_remove }}"
|
|
||||||
tags:
|
|
||||||
- remove-packages
|
|
114
tests/roles/bootstrap-host/tasks/install_packages.yml
Normal file
114
tests/roles/bootstrap-host/tasks/install_packages.yml
Normal file
@ -0,0 +1,114 @@
|
|||||||
|
---
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
# Ubuntu
|
||||||
|
- block:
|
||||||
|
- name: Ensure that apt supports HTTPS package sources
|
||||||
|
apt:
|
||||||
|
name: apt-transport-https
|
||||||
|
state: present
|
||||||
|
tags:
|
||||||
|
- apt-install-prerequisites
|
||||||
|
|
||||||
|
- name: Determine the existing Ubuntu repo configuration
|
||||||
|
command: 'grep -oP "^deb \K(\[?.*\]?.*ubuntu\S*\/?)(?= {{ ansible_distribution_release }} main)" /etc/apt/sources.list'
|
||||||
|
register: ubuntu_repo
|
||||||
|
when:
|
||||||
|
- bootstrap_host_ubuntu_repo is not defined
|
||||||
|
changed_when: false
|
||||||
|
tags:
|
||||||
|
- find-apt-repo
|
||||||
|
|
||||||
|
- name: Determine the existing Ubuntu Security repo configuration
|
||||||
|
command: 'grep -oP "^deb \K(\[?.*\]?.*ubuntu\S*\/?)(?= {{ ansible_distribution_release }}-security main)" /etc/apt/sources.list'
|
||||||
|
register: ubuntu_security_repo
|
||||||
|
when:
|
||||||
|
- bootstrap_host_ubuntu_security_repo is not defined
|
||||||
|
changed_when: false
|
||||||
|
tags:
|
||||||
|
- find-apt-security-repo
|
||||||
|
|
||||||
|
- name: Set apt repo facts based on discovered information
|
||||||
|
set_fact:
|
||||||
|
bootstrap_host_ubuntu_repo: "{{ ubuntu_repo.stdout_lines[0] }}"
|
||||||
|
bootstrap_host_ubuntu_security_repo: "{{ ubuntu_security_repo.stdout_lines[0] }}"
|
||||||
|
when:
|
||||||
|
- bootstrap_host_ubuntu_repo is not defined
|
||||||
|
- bootstrap_host_ubuntu_security_repo is not defined
|
||||||
|
- ubuntu_repo is defined
|
||||||
|
- ubuntu_security_repo is defined
|
||||||
|
|
||||||
|
- name: Configure apt's sources.list (Ubuntu only)
|
||||||
|
template:
|
||||||
|
src: apt-sources.list.j2
|
||||||
|
dest: /etc/apt/sources.list
|
||||||
|
backup: yes
|
||||||
|
when:
|
||||||
|
- ansible_distribution == 'Ubuntu'
|
||||||
|
- bootstrap_host_ubuntu_repo is defined
|
||||||
|
- bootstrap_host_ubuntu_security_repo is defined
|
||||||
|
register: apt_sources_configure
|
||||||
|
|
||||||
|
- name: Update apt-cache
|
||||||
|
apt:
|
||||||
|
update_cache: yes
|
||||||
|
when:
|
||||||
|
- apt_sources_configure is defined
|
||||||
|
- apt_sources_configure | changed
|
||||||
|
tags:
|
||||||
|
- apt-cache-update
|
||||||
|
|
||||||
|
when:
|
||||||
|
- ansible_pkg_mgr == 'apt'
|
||||||
|
|
||||||
|
# CentOS
|
||||||
|
- block:
|
||||||
|
- name: Install RDO package
|
||||||
|
package:
|
||||||
|
name: "{{ rdo_package }}"
|
||||||
|
state: "present"
|
||||||
|
register: install_cloud_rdo_package
|
||||||
|
until: install_cloud_rdo_package | success
|
||||||
|
retries: 5
|
||||||
|
delay: 2
|
||||||
|
|
||||||
|
- name: Install epel package
|
||||||
|
package:
|
||||||
|
name: "{{ epel_package }}"
|
||||||
|
state: "present"
|
||||||
|
register: install_epel_package
|
||||||
|
until: install_epel_package | success
|
||||||
|
retries: 5
|
||||||
|
delay: 2
|
||||||
|
|
||||||
|
when:
|
||||||
|
- ansible_pkg_mgr == 'yum'
|
||||||
|
|
||||||
|
- name: Remove known problem packages
|
||||||
|
package:
|
||||||
|
name: "{{ item }}"
|
||||||
|
state: absent
|
||||||
|
with_items: "{{ packages_remove }}"
|
||||||
|
tags:
|
||||||
|
- remove-packages
|
||||||
|
|
||||||
|
- name: Install packages
|
||||||
|
package:
|
||||||
|
name: "{{ item }}"
|
||||||
|
state: present
|
||||||
|
with_items: "{{ packages_install }}"
|
||||||
|
tags:
|
||||||
|
- install-packages
|
||||||
|
|
@ -40,18 +40,7 @@
|
|||||||
tags:
|
tags:
|
||||||
- create-directories
|
- create-directories
|
||||||
|
|
||||||
# Configure apt in a known way to reduce the chance of unexpected failures
|
- include: install_packages.yml
|
||||||
- include: install-apt.yml
|
|
||||||
when:
|
|
||||||
- ansible_pkg_mgr == 'apt'
|
|
||||||
tags:
|
|
||||||
- install-apt
|
|
||||||
|
|
||||||
- name: Install packages
|
|
||||||
package:
|
|
||||||
name: "{{ item }}"
|
|
||||||
state: present
|
|
||||||
with_items: "{{ packages_install }}"
|
|
||||||
tags:
|
tags:
|
||||||
- install-packages
|
- install-packages
|
||||||
|
|
||||||
|
@ -36,7 +36,7 @@
|
|||||||
|
|
||||||
- name: Ensure that rc.local exists
|
- name: Ensure that rc.local exists
|
||||||
file:
|
file:
|
||||||
path: /etc/rc.local
|
path: "{{ rc_local }}"
|
||||||
state: touch
|
state: touch
|
||||||
mode: "u+x"
|
mode: "u+x"
|
||||||
tags:
|
tags:
|
||||||
@ -48,9 +48,9 @@
|
|||||||
# after the boot process completes.
|
# after the boot process completes.
|
||||||
- name: Create loopback devices at boot time
|
- name: Create loopback devices at boot time
|
||||||
lineinfile:
|
lineinfile:
|
||||||
dest: /etc/rc.local
|
dest: "{{ rc_local }}"
|
||||||
line: "losetup $(losetup -f) /openstack/cinder.img"
|
line: "losetup $(losetup -f) /openstack/cinder.img"
|
||||||
insertbefore: "^exit 0$"
|
insertbefore: "{{ rc_local_insert_before }}"
|
||||||
tags:
|
tags:
|
||||||
- cinder-rc-config
|
- cinder-rc-config
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
|
|
||||||
rescue:
|
rescue:
|
||||||
- name: Create swap file
|
- name: Create swap file
|
||||||
command: "fallocate -l {{ bootstrap_host_swap_size }}G /openstack/swap.img"
|
command: "{{ swap_create_command }}"
|
||||||
args:
|
args:
|
||||||
creates: /openstack/swap.img
|
creates: /openstack/swap.img
|
||||||
register: swap_create
|
register: swap_create
|
||||||
|
@ -13,41 +13,91 @@
|
|||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
- name: Ensure that /etc/network/interfaces.d/ exists
|
- name: Ensure that /etc/network/interfaces.d/ exists (Debian)
|
||||||
file:
|
file:
|
||||||
path: /etc/network/interfaces.d/
|
path: /etc/network/interfaces.d/
|
||||||
state: directory
|
state: directory
|
||||||
tags:
|
tags:
|
||||||
- networking-dir-create
|
- networking-dir-create
|
||||||
|
when:
|
||||||
|
- ansible_pkg_mgr == 'apt'
|
||||||
|
|
||||||
- name: Copy AIO network configuration
|
- name: Copy AIO network configuration (Debian)
|
||||||
template:
|
template:
|
||||||
src: osa_interfaces.cfg.j2
|
src: osa_interfaces.cfg.j2
|
||||||
dest: /etc/network/interfaces.d/osa_interfaces.cfg
|
dest: /etc/network/interfaces.d/osa_interfaces.cfg
|
||||||
register: osa_interfaces
|
register: osa_interfaces
|
||||||
when: bootstrap_host_aio_config | bool
|
when:
|
||||||
|
- bootstrap_host_aio_config | bool
|
||||||
|
- ansible_pkg_mgr == 'apt'
|
||||||
tags:
|
tags:
|
||||||
- networking-interfaces-file
|
- networking-interfaces-file
|
||||||
|
|
||||||
- name: Copy multinode network configuration
|
- name: Copy network configuration (RedHat)
|
||||||
|
template:
|
||||||
|
src: "redhat_interface_{{ item.type | default('default') }}.cfg.j2"
|
||||||
|
dest: "/etc/sysconfig/network-scripts/ifcfg-{{ item.name | default('br-mgmt') }}"
|
||||||
|
with_items: "{{ bridges }}"
|
||||||
|
register: network_interfaces_rhel
|
||||||
|
when:
|
||||||
|
- ansible_pkg_mgr == 'yum'
|
||||||
|
|
||||||
|
- name: Create alias file when required (RedHat)
|
||||||
|
template:
|
||||||
|
src: "redhat_interface_alias.cfg.j2"
|
||||||
|
dest: "/etc/sysconfig/network-scripts/ifcfg-{{ item.name | default('br-mgmt')}}:0"
|
||||||
|
with_items: "{{ bridges }}"
|
||||||
|
when:
|
||||||
|
- ansible_pkg_mgr == 'yum'
|
||||||
|
- item.alias is defined
|
||||||
|
|
||||||
|
- name: Put down post-up script for veth-peer interfaces (RedHat)
|
||||||
|
template:
|
||||||
|
src: "redhat_interface_{{ item[0] | default('default') }}.cfg.j2"
|
||||||
|
dest: "/etc/sysconfig/network-scripts/{{ item[0] }}-veth-{{ item[1].name | default('br-mgmt') }}-2-{{ item[1].veth_peer | default('eth1') }}"
|
||||||
|
mode: "0755"
|
||||||
|
with_nested:
|
||||||
|
- [ "ifup-post", "ifdown-post" ]
|
||||||
|
- "{{ bridges }}"
|
||||||
|
when:
|
||||||
|
- item[1].veth_peer is defined
|
||||||
|
- ansible_pkg_mgr == 'yum'
|
||||||
|
|
||||||
|
- name: Ensure the postup/postdown scripts are loaded (RedHat)
|
||||||
|
lineinfile:
|
||||||
|
dest: "/etc/sysconfig/network-scripts/{{ item[0] }}"
|
||||||
|
line: ". /etc/sysconfig/network-scripts/{{ item[0] }}-veth-{{ item[1].name | default('br-mgmt') }}-2-{{ item[1].veth_peer | default('eth1') }}"
|
||||||
|
insertbefore: "^exit 0"
|
||||||
|
with_nested:
|
||||||
|
- [ "ifup-post", "ifdown-post" ]
|
||||||
|
- "{{ bridges }}"
|
||||||
|
when:
|
||||||
|
- item[1].veth_peer is defined
|
||||||
|
- ansible_pkg_mgr == 'yum'
|
||||||
|
|
||||||
|
- name: Copy multinode network configuration (Debian)
|
||||||
template:
|
template:
|
||||||
src: osa_interfaces_multinode.cfg.j2
|
src: osa_interfaces_multinode.cfg.j2
|
||||||
dest: /etc/network/interfaces.d/osa_interfaces.cfg
|
dest: /etc/network/interfaces.d/osa_interfaces.cfg
|
||||||
register: osa_multinode_interfaces
|
register: osa_multinode_interfaces
|
||||||
when: not bootstrap_host_aio_config | bool
|
when:
|
||||||
|
- not bootstrap_host_aio_config | bool
|
||||||
|
- ansible_pkg_mgr == 'apt'
|
||||||
tags:
|
tags:
|
||||||
- networking-interfaces-file
|
- networking-interfaces-file
|
||||||
|
|
||||||
- name: Ensure our interfaces.d configuration files are loaded automatically
|
- name: Ensure our interfaces.d configuration files are loaded automatically (Debian)
|
||||||
lineinfile:
|
lineinfile:
|
||||||
dest: /etc/network/interfaces
|
dest: /etc/network/interfaces
|
||||||
line: "source /etc/network/interfaces.d/*.cfg"
|
line: "source /etc/network/interfaces.d/*.cfg"
|
||||||
|
when:
|
||||||
|
- ansible_pkg_mgr == 'apt'
|
||||||
tags:
|
tags:
|
||||||
- networking-interfaces-load
|
- networking-interfaces-load
|
||||||
|
|
||||||
- name: Shut down the network interfaces
|
- name: Shut down the network interfaces
|
||||||
command: "ifdown {{ item }}"
|
command: "ifdown {{ item }}"
|
||||||
when: osa_interfaces | changed or osa_multinode_interfaces | changed
|
when: osa_interfaces | changed or osa_multinode_interfaces | changed or network_interfaces_rhel | changed
|
||||||
with_items:
|
with_items:
|
||||||
- br-mgmt
|
- br-mgmt
|
||||||
- br-storage
|
- br-storage
|
||||||
@ -76,7 +126,7 @@
|
|||||||
|
|
||||||
- name: Start the network interfaces
|
- name: Start the network interfaces
|
||||||
command: "ifup {{ item }}"
|
command: "ifup {{ item }}"
|
||||||
when: osa_interfaces | changed
|
when: osa_interfaces | changed or network_interfaces_rhel | changed
|
||||||
with_items:
|
with_items:
|
||||||
- br-mgmt
|
- br-mgmt
|
||||||
- br-storage
|
- br-storage
|
||||||
|
@ -0,0 +1,5 @@
|
|||||||
|
# This interface is an alias
|
||||||
|
DEVICE={{ item.name | default('br-mgmt') }}:0
|
||||||
|
IPADDR={{ item.alias | default('10.1.0.1') }}
|
||||||
|
NETMASK={{ item.netmask | default('255.255.255.0') }}
|
||||||
|
ONBOOT=yes
|
@ -0,0 +1,11 @@
|
|||||||
|
{% if item.veth_peer is defined %}
|
||||||
|
# This interface has a veth peer
|
||||||
|
{% endif %}
|
||||||
|
DEVICE={{ item.name | default('br-mgmt') }}
|
||||||
|
TYPE=Bridge
|
||||||
|
IPADDR={{ item.ip_addr | default('10.1.0.1') }}
|
||||||
|
NETMASK={{ item.netmask | default('255.255.255.0') }}
|
||||||
|
ONBOOT=yes
|
||||||
|
BOOTPROTO=none
|
||||||
|
NM_CONTROLLED=no
|
||||||
|
DELAY=0
|
@ -0,0 +1,19 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Copyright 2014, 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.
|
||||||
|
|
||||||
|
if [ "${DEVICE}" == "{{ item[1].name | default('br-mgmt') }}" ]; then
|
||||||
|
/usr/sbin/ip link set {{ item[1].name | default('br-mgmt') }}-veth nomaster || true
|
||||||
|
/usr/sbin/ip link del {{ item[1].name | default('br-mgmt') }}-veth || true
|
||||||
|
fi
|
@ -0,0 +1,25 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Copyright 2014, 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.
|
||||||
|
|
||||||
|
if [ "${DEVICE}" == "{{ item[1].name | default('br-mgmt') }}" ]; then
|
||||||
|
# Create veth pair, don't bomb if already exists
|
||||||
|
echo "Creating veth"
|
||||||
|
/usr/sbin/ip link add {{ item[1].name | default('br-mgmt') }}-veth type veth peer name {{ item[1].veth_peer | default('eth0') }} || true
|
||||||
|
# Set both ends UP
|
||||||
|
/usr/sbin/ip link set {{ item[1].name | default('br-mgmt') }}-veth up || true
|
||||||
|
/usr/sbin/ip link set {{ item[1].veth_peer | default('eth0') }} up || true
|
||||||
|
# add eth12 to the bridge
|
||||||
|
/usr/sbin/ip link set {{ item[1].name | default('br-mgmt') }}-veth master {{ item[1].name | default('br-mgmt') }} || true
|
||||||
|
fi
|
@ -13,5 +13,28 @@
|
|||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
|
rdo_package: "centos-release-openstack-newton"
|
||||||
|
epel_package: "epel-release"
|
||||||
|
|
||||||
packages_install:
|
packages_install:
|
||||||
|
- '@Development Tools'
|
||||||
|
- bridge-utils
|
||||||
|
- curl
|
||||||
|
- ethtool
|
||||||
|
- git
|
||||||
- iputils
|
- iputils
|
||||||
|
- lvm2
|
||||||
|
- python
|
||||||
|
- python-devel
|
||||||
|
- python-ipython
|
||||||
|
- tmux
|
||||||
|
- vconfig
|
||||||
|
- vim
|
||||||
|
- xfsprogs
|
||||||
|
|
||||||
|
packages_remove: []
|
||||||
|
|
||||||
|
swap_create_command: "dd if=/dev/zero of=/openstack/swap.img bs={{ bootstrap_host_swap_size }}G count=1"
|
||||||
|
rc_local: /etc/rc.d/rc.local
|
||||||
|
rc_local_insert_before: "^touch /var/lock/subsys/local$"
|
||||||
|
|
||||||
|
@ -33,3 +33,7 @@ packages_install:
|
|||||||
packages_remove:
|
packages_remove:
|
||||||
- libmysqlclient18
|
- libmysqlclient18
|
||||||
- mysql-common
|
- mysql-common
|
||||||
|
|
||||||
|
swap_create_command: "fallocate -l {{ bootstrap_host_swap_size }}G /openstack/swap.img"
|
||||||
|
rc_local: /etc/rc.local
|
||||||
|
rc_local_insert_before: "^exit 0$"
|
||||||
|
Loading…
Reference in New Issue
Block a user