8e9b800332
This package is needed on utility containers to allow git clones from the repo server and/or other locations. Without this package Tempest role can not execute because the role assumes git is already available within an environment where it is to be executed. Its worth noting that this works fine in Ubuntu 14.04 because of the heavy nature of the base container image while in Ubuntu 16.04 the container images are far more minimal. Change-Id: I63f051cc7fa6045eed8332713de3eea241f17504 Signed-off-by: Kevin Carter <kevin.carter@rackspace.com>
141 lines
4.1 KiB
YAML
141 lines
4.1 KiB
YAML
---
|
|
# 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.
|
|
|
|
- name: Setup the utility location(s)
|
|
hosts: utility_all
|
|
max_fail_percentage: 20
|
|
user: root
|
|
pre_tasks:
|
|
- name: Use the lxc-openstack aa profile
|
|
lxc_container:
|
|
name: "{{ container_name }}"
|
|
container_config:
|
|
- "lxc.aa_profile=lxc-openstack"
|
|
delegate_to: "{{ physical_host }}"
|
|
when: not is_metal | bool
|
|
register: container_config
|
|
tags:
|
|
- lxc-aa-profile
|
|
- name: Wait for container ssh
|
|
wait_for:
|
|
port: "22"
|
|
delay: "{{ ssh_delay }}"
|
|
search_regex: "OpenSSH"
|
|
host: "{{ ansible_ssh_host }}"
|
|
delegate_to: "{{ physical_host }}"
|
|
when: container_config is defined and container_config | changed
|
|
register: ssh_wait_check
|
|
until: ssh_wait_check | success
|
|
retries: 3
|
|
tags:
|
|
- ssh-wait
|
|
- name: Create log dir
|
|
file:
|
|
path: "{{ item.path }}"
|
|
state: directory
|
|
with_items:
|
|
- { path: "/openstack/log/{{ inventory_hostname }}-utility" }
|
|
when: is_metal | bool
|
|
tags:
|
|
- utility-logs
|
|
- utility-log-dirs
|
|
- name: Create log aggregation links
|
|
file:
|
|
src: "{{ item.src }}"
|
|
dest: "{{ item.dest }}"
|
|
state: "{{ item.state }}"
|
|
force: "yes"
|
|
with_items:
|
|
- { src: "/openstack/log/{{ inventory_hostname }}-utility", dest: "/var/log/utility", state: "link" }
|
|
when: is_metal | bool
|
|
tags:
|
|
- utility-logs
|
|
- name: Create log directory
|
|
file:
|
|
dest: "/var/log/utility"
|
|
state: "directory"
|
|
force: "yes"
|
|
when: not is_metal | bool
|
|
tags:
|
|
- utility-logs
|
|
roles:
|
|
- { role: "galera_client", tags: [ "utility-galera-client" ] }
|
|
- role: "pip_install"
|
|
pip_lock_to_internal_repo: "{{ (pip_links | length) >= 1 }}"
|
|
tags:
|
|
- utility-pip-lock-down
|
|
- { role: "openstack_openrc", tags: [ "utility-openstack-openrc" ] }
|
|
post_tasks:
|
|
- name: Update apt sources
|
|
apt:
|
|
update_cache: yes
|
|
cache_valid_time: 600
|
|
register: apt_update
|
|
until: apt_update|success
|
|
retries: 5
|
|
delay: 2
|
|
tags:
|
|
- utility-apt-packages
|
|
- name: Install apt packages
|
|
apt:
|
|
pkg: "{{ item }}"
|
|
state: latest
|
|
register: install_packages
|
|
until: install_packages|success
|
|
retries: 5
|
|
delay: 2
|
|
with_items: "{{ utility_apt_packages | default([]) }}"
|
|
tags:
|
|
- utility-apt-packages
|
|
- name: Install pip packages
|
|
pip:
|
|
name: "{{ item }}"
|
|
state: present
|
|
extra_args: "{{ pip_install_options|default('') }}"
|
|
register: install_packages
|
|
until: install_packages|success
|
|
retries: 5
|
|
delay: 2
|
|
with_items: "{{ utility_pip_packages }}"
|
|
tags:
|
|
- utility-pip-packages
|
|
- name: Distribute private ssh key
|
|
copy:
|
|
content: "{{ utility_ssh_private_key }}"
|
|
dest: /root/.ssh/id_rsa
|
|
mode: 0600
|
|
owner: root
|
|
group: root
|
|
when:
|
|
- utility_ssh_private_key is defined
|
|
vars:
|
|
utility_apt_packages:
|
|
- git
|
|
utility_pip_packages:
|
|
- python-openstackclient
|
|
- python-ceilometerclient
|
|
- python-cinderclient
|
|
- python-glanceclient
|
|
- python-heatclient
|
|
- python-keystoneclient
|
|
- python-neutronclient
|
|
- python-novaclient
|
|
- python-ironicclient
|
|
- python-swiftclient
|
|
- gnocchiclient
|
|
- python-memcached
|
|
- pycrypto
|
|
is_metal: "{{ properties.is_metal|default(false) }}"
|