a7da22155b
Change-Id: Iac5e266899b01cd84a15f7a5016961472d039240
162 lines
4.5 KiB
YAML
162 lines
4.5 KiB
YAML
# Copyright (c) 2017 IBM Corporation.
|
|
#
|
|
# 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.
|
|
|
|
#
|
|
# Example commands to configure the ansible controller:
|
|
#
|
|
# ubuntu@hamzy-dev:~$ cat << __EOF__ | sudo tee -a /etc/ansible/hosts
|
|
# # @BEGIN
|
|
# 192.168.0.15
|
|
# hamzy-test ansible_host=192.168.0.15
|
|
#
|
|
# [molteniron]
|
|
# hamzy-test
|
|
# # @END
|
|
# __EOF__
|
|
# ubuntu@hamzy-dev:~$ ansible molteniron -m ping
|
|
# hamzy-test | SUCCESS => {
|
|
# "changed": false,
|
|
# "ping": "pong"
|
|
# }
|
|
#
|
|
# Remember to add the controller's public ssh key to:
|
|
# ubuntu@192.168.0.15/24:/home/ubuntu/.ssh/authorized_keys
|
|
#
|
|
# Example command to deploy a molteniron server on a fresh install of
|
|
# Ubuntu 16.04:
|
|
#
|
|
# ubuntu@hamzy-dev:~$ ansible-playbook molteniron-playbook.yml -f 10
|
|
#
|
|
|
|
---
|
|
- name: deploy molteniron server
|
|
hosts: molteniron
|
|
# strategy: debug
|
|
gather_facts: yes
|
|
become: true
|
|
become_user: root
|
|
become_method: 'sudo'
|
|
|
|
vars:
|
|
moltenirond_pid_file: "/var/run/moltenirond.pid"
|
|
molteniron_source_dir: "/home/ubuntu/molteniron"
|
|
|
|
tasks:
|
|
- name: install base packages
|
|
apt:
|
|
pkg: "{{ item }}"
|
|
state: present
|
|
update_cache: yes
|
|
cache_valid_time: 604800
|
|
with_items:
|
|
- sysstat
|
|
- build-essential
|
|
- python-dev
|
|
- python3-dev
|
|
- libmysqlclient-dev
|
|
- tox
|
|
- python2.7
|
|
- python3.5
|
|
- python-pip
|
|
- python-mysqldb
|
|
- mysql-server
|
|
|
|
- name: start mysql server
|
|
service:
|
|
name: mysql
|
|
state: started
|
|
enabled: yes
|
|
|
|
- stat:
|
|
path: "{{ molteniron_source_dir }}"
|
|
register: molteniron_source_dir_st
|
|
|
|
- name: install molteniron source code from git
|
|
git:
|
|
repo: https://opendev.org/openstack/molteniron.git
|
|
dest: "{{ molteniron_source_dir }}"
|
|
version: HEAD
|
|
when: molteniron_source_dir_st.stat.islnk is not defined
|
|
|
|
# NOTE: We need to requery if the directory has been installed, because
|
|
# it may have changed.
|
|
- stat:
|
|
path: "{{ molteniron_source_dir }}"
|
|
register: molteniron_source_dir_st2
|
|
|
|
- name: change to master branch in git
|
|
shell: git checkout master
|
|
args:
|
|
chdir: "{{ molteniron_source_dir }}"
|
|
when: molteniron_source_dir_st2.stat.islnk is defined
|
|
|
|
- name: pip install molteniron from git repository
|
|
shell: pip install -U --force-reinstall
|
|
-r requirements.txt > pip_install.log 2>&1
|
|
args:
|
|
chdir: "{{ molteniron_source_dir }}"
|
|
creates: "{{ molteniron_source_dir }}/pip_install.log"
|
|
|
|
- name: python install molteniron from git repository
|
|
shell: python setup.py install > python_install.log 2>&1
|
|
args:
|
|
chdir: "{{ molteniron_source_dir }}"
|
|
creates: "{{ molteniron_source_dir }}/python_install.log"
|
|
|
|
- name: authorize openstack_citest MYSQL access
|
|
mysql_user:
|
|
login_user: root
|
|
login_password: ""
|
|
check_implicit_admin: yes
|
|
name: openstack_citest
|
|
password: openstack_citest
|
|
priv: "*.*:ALL,GRANT"
|
|
state: present
|
|
|
|
- name: grab the contents of {{ moltenirond_pid_file }}
|
|
shell: cat {{ moltenirond_pid_file }}
|
|
ignore_errors: true
|
|
register: moltenirond_pid
|
|
|
|
- debug:
|
|
var: moltenirond_pid
|
|
|
|
- name: run ps -l on the pid
|
|
shell: ps -l {{ moltenirond_pid.stdout }}
|
|
register: moltenirond_pid_info
|
|
when: moltenirond_pid.stdout != ""
|
|
|
|
- debug:
|
|
var: moltenirond_pid_info
|
|
|
|
- name: check to see if molteniron is running
|
|
shell: test -f {{ moltenirond_pid_file }};
|
|
if [ $? -eq 0 ]; then echo RUNNING; else echo STOPPED; fi
|
|
register: moltenirond_pid_status
|
|
|
|
- debug:
|
|
var: moltenirond_pid_status
|
|
|
|
- name: start molteniron server
|
|
shell: moltenirond-helper start
|
|
when: moltenirond_pid_status.stdout == "STOPPED"
|
|
|
|
- name: run the molteniron status command
|
|
shell: molteniron --output=result status --type=human
|
|
register: molteniron_result_status
|
|
|
|
- debug:
|
|
var: molteniron_result_status
|