Add posts installation tasks, and follow the standard procedure

This commit is contained in:
Taseer Ahmed 2017-09-22 12:44:16 +05:00
parent 6d66c9c340
commit a5c895448a
5 changed files with 262 additions and 97 deletions

View File

@ -29,4 +29,48 @@ congress_bin: "/openstack/venvs/congress-{{ congress_venv_tag }}/bin"
congress_venv_download_url: http://127.0.0.1/venvs/untagged/ubuntu/congress.tgz
congress_requires_pip_packages:
- virtualenv
- virtualenv
## System info
congress_system_user_name: congress
congress_system_group_name: congress
congress_system_shell: /bin/false
congress_system_comment: congress system user
congress_system_user_home: "/var/lib/{{ congress_system_user_name }}"
## Database credentials
congress_db_name: congress
congress_db_user: root
congress_db_login_host: ""
congress_db_login_user: ""
congress_db_login_password: ""
congress_db_user_password: ""
## Service Type and Data
congress_service_region: RegionOne
congress_service_name: congress
congress_service_proto: http
congress_service_type: nfv-orchestration
congress_service_description: "congress service"
congress_service_publicuri: "{{ congress_service_publicuri_proto }}://{{ external_lb_vip_address }}:{{ congress_service_port }}"
congress_service_publicurl: "{{ congress_service_publicuri }}"
congress_service_internaluri: "{{ congress_service_internaluri_proto }}://{{ internal_lb_vip_address }}:{{ congress_service_port }}"
congress_service_internalurl: "{{ congress_service_internaluri }}"
congress_service_adminuri: "{{ congress_service_adminuri_proto }}://{{ internal_lb_vip_address }}:{{ congress_service_port }}"
congress_service_adminurl: "{{ congress_service_adminuri }}"
congress_service_registry_proto: "{{ congress_service_proto }}"
congress_service_publicuri_proto: "{{ openstack_service_publicuri_proto | default(congress_service_proto) }}"
congress_service_adminuri_proto: "{{ openstack_service_adminuri_proto | default(congress_service_proto) }}"
congress_service_internaluri_proto: "{{ openstack_service_internaluri_proto | default(congress_service_proto) }}"
#NOTE: move password to tests/test-vars.yml
congress_service_password: password
## Keystone
congress_service_project_domain_id: default
congress_service_project_name: service
congress_service_user_domain_id: default
congress_service_user_name: congress
congress_keystone_auth_plugin: password
congress_service_in_ldap: false

90
tasks/congress_init.yml Normal file
View File

@ -0,0 +1,90 @@
---
# Copyright 2017, taseer94@gmail.com
# All rights reserved.
#
# 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 congress service
keystone:
command: "ensure_service"
endpoint: "{{ keystone_service_adminurl }}"
login_user: "{{ keystone_admin_user_name }}"
login_password: "{{ keystone_auth_admin_password }}"
login_project_name: "{{ keystone_admin_tenant_name }}"
service_name: "{{ congress_service_name }}"
service_type: "{{ congress_service_type }}"
description: "{{ congress_service_description }}"
insecure: "{{ keystone_service_adminuri_insecure }}"
register: add_service
until: add_service|success
retries: 5
delay: 2
# Create an admin user
- name: Ensure congress user
keystone:
command: "ensure_user"
endpoint: "{{ keystone_service_adminurl }}"
login_user: "{{ keystone_admin_user_name }}"
login_password: "{{ keystone_auth_admin_password }}"
login_project_name: "{{ keystone_admin_tenant_name }}"
user_name: "{{ congress_service_user_name }}"
tenant_name: "{{ congress_service_project_name }}"
password: "{{ congress_service_password }}"
insecure: "{{ keystone_service_adminuri_insecure }}"
register: add_service
when: not congress_service_in_ldap | bool
until: add_service|success
retries: 5
delay: 10
- name: Ensure congress user to admin role
keystone:
command: "ensure_user_role"
endpoint: "{{ keystone_service_adminurl }}"
login_user: "{{ keystone_admin_user_name }}"
login_password: "{{ keystone_auth_admin_password }}"
login_project_name: "{{ keystone_admin_tenant_name }}"
user_name: "{{ congress_service_user_name }}"
tenant_name: "{{ congress_service_project_name }}"
role_name: "{{ congress_role_name }}"
insecure: "{{ keystone_service_adminuri_insecure }}"
register: add_service
when: not congress_service_in_ldap | bool
until: add_service|success
retries: 5
delay: 10
# Create an endpoint
- name: Ensure congress endpoint
keystone:
command: "ensure_endpoint"
endpoint: "{{ keystone_service_adminurl }}"
login_user: "{{ keystone_admin_user_name }}"
login_password: "{{ keystone_auth_admin_password }}"
login_project_name: "{{ keystone_admin_tenant_name }}"
region_name: "{{ congress_service_region }}"
service_name: "{{ congress_service_name }}"
service_type: "{{ congress_service_type }}"
insecure: "{{ keystone_service_adminuri_insecure }}"
endpoint_list:
- url: "{{ congress_service_publicurl }}"
interface: "public"
- url: "{{ congress_service_internalurl }}"
interface: "internal"
- url: "{{ congress_service_adminurl }}"
interface: "admin"
register: add_service
until: add_service|success
retries: 5
delay: 10

View File

@ -14,74 +14,85 @@
# See the License for the specific language governing permissions and
# limitations under the License.
- name: Install required pip packages
pip:
name: "{{ congress_requires_pip_packages | join(' ') }}"
state: "{{ congress_package_state }}"
register: install_packages
until: install_packages|success
retries: 5
delay: 2
- name: clone congress repo
git:
repo: "{{ congress_git_repo }}"
dest: /opt/congress
clone: yes
- name: Retrieve checksum for venv download
uri:
url: "{{ congress_venv_download_url | replace('tgz', 'checksum') }}"
return_content: yes
register: congress_venv_checksum
when: not congress_developer_mode | bool
- name: install congress
shell: python setup.py install
args:
chdir: /opt/congress
- name: Attempt venv download
get_url:
url: "{{ congress_venv_download_url }}"
dest: "/var/cache/{{ congress_venv_download_url | basename }}"
checksum: "sha1:{{ congress_venv_checksum.content | trim }}"
register: congress_get_venv
when: not congress_developer_mode | bool
#- name: Install required pip packages
# pip:
# name: "{{ congress_requires_pip_packages | join(' ') }}"
# state: "{{ congress_package_state }}"
# register: install_packages
# until: install_packages|success
# retries: 5
# delay: 2
- name: Remove existing venv
file:
path: "{{ congress_bin | dirname }}"
state: absent
when: congress_get_venv | changed
#- name: Retrieve checksum for venv download
# uri:
# url: "{{ congress_venv_download_url | replace('tgz', 'checksum') }}"
# return_content: yes
# register: congress_venv_checksum
# when: not congress_developer_mode | bool
- name: Create congress venv dir
file:
path: "{{ congress_bin | dirname }}"
state: directory
register: congress_venv_dir
when: not congress_developer_mode | bool
#- name: Attempt venv download
# get_url:
# url: "{{ congress_venv_download_url }}"
# dest: "/var/cache/{{ congress_venv_download_url | basename }}"
# checksum: "sha1:{{ congress_venv_checksum.content | trim }}"
# register: congress_get_venv
# when: not congress_developer_mode | bool
- name: Unarchive pre-built venv
unarchive:
src: "/var/cache/{{ congress_venv_download_url | basename }}"
dest: "{{ congress_bin | dirname }}"
copy: "no"
when:
- not congress_developer_mode | bool
- congress_get_venv | changed or congress_venv_dir | changed
#- name: Remove existing venv
# file:
# path: "{{ congress_bin | dirname }}"
# state: absent
# when: congress_get_venv | changed
- name: Install pip packages
pip:
name: "{{ congress_pip_packages | join(' ') }}"
state: "{{ congress_package_state }}"
virtualenv: "{{ congress_bin | dirname }}"
virtualenv_site_packages: "no"
register: install_packages
until: install_packages|success
retries: 5
delay: 2
when: congress_developer_mode | bool
#- name: Create congress venv dir
# file:
# path: "{{ congress_bin | dirname }}"
# state: directory
# register: congress_venv_dir
# when: not congress_developer_mode | bool
- name: Update virtualenv path
command: >
virtualenv-tools --update-path=auto --reinitialize {{ congress_bin | dirname }}
when:
- not congress_developer_mode | bool
- congress_get_venv | changed or congress_venv_dir | changed
#- name: Unarchive pre-built venv
# unarchive:
# src: "/var/cache/{{ congress_venv_download_url | basename }}"
# dest: "{{ congress_bin | dirname }}"
# copy: "no"
# when:
# - not congress_developer_mode | bool
# - congress_get_venv | changed or congress_venv_dir | changed
- name: Record the venv tag deployed
ini_file:
dest: "/etc/ansible/facts.d/openstack_ansible.fact"
section: congress
option: venv_tag
value: "{{ congress_venv_tag }}"
#- name: Install pip packages
# pip:
# name: "{{ congress_pip_packages | join(' ') }}"
# state: "{{ congress_package_state }}"
# virtualenv: "{{ congress_bin | dirname }}"
# virtualenv_site_packages: "no"
# register: install_packages
# until: install_packages|success
# retries: 5
# delay: 2
# when: congress_developer_mode | bool
#- name: Update virtualenv path
# command: >
# virtualenv-tools --update-path=auto --reinitialize {{ congress_bin | dirname }}
# when:
# - not congress_developer_mode | bool
# - congress_get_venv | changed or congress_venv_dir | changed
#- name: Record the venv tag deployed
# ini_file:
# dest: "/etc/ansible/facts.d/openstack_ansible.fact"
# section: congress
# option: venv_tag
# value: "{{ congress_venv_tag }}"

View File

@ -14,39 +14,31 @@
# See the License for the specific language governing permissions and
# limitations under the License.
- debug:
msg: "This is the post installation script"
- name: creating congress database
mysql_db:
name: "{{ congress_db_name }}"
state: present
login_host: "{{ congress_db_login_host }}"
login_user: "{{ congress_db_login_user }}"
login_password: "{{ congress_db_login_password }}"
- name: make configuration directory
file:
path: /etc/congress
state: directory
- name: make snapshot directory
file:
path: /etc/congress/snapshot
state: directory
- name: copy files
copy:
src: "/opt/requirements/etc/{{ item }}"
dest: /etc/congress
- name: create congress user access
mysql_user:
name: "{{ congress_db_user }}"
password: "{{ congress_db_user_password }}"
login_host: "{{ congress_db_login_host }}"
login_user: "{{ congress_db_login_user }}"
login_password: "{{ congress_db_login_password }}"
priv: congress.*:ALL
host: "{{ item }}"
with_items:
- api-paste.ini
- policy.json
- congress.conf.sample
- "%"
- "localhost"
- debug:
msg: "Adding the database"
- name: create congress database schema
shell: >
/usr/bin/congress-db-manage --config /etc/congress/congress.conf upgrade head
- debug:
msg: "setting up congress accounts"
- debug:
msg: "setting up congress service endpoints"
- debug:
msg: "Setting up datasource drivers"
- debug:
msg: "Install Congress client in the utility container"
- name: install congress client
pip:
name: python-congressclient

View File

@ -23,4 +23,32 @@
pip:
name: "{{ item }}"
with_items:
- virtualenv
- virtualenv
- name: create congress group
group:
name: "{{ congress_system_group_name }}"
state: present
- name: create congress user
user:
name: "{{ congress_system_user_name }}"
group: "{{ congress_system_group_name }}"
createhome: no
- name: make congress configuration directory
file:
path: "{{ item }}"
state: directory
with_items:
- /etc/congress
- /etc/congress/snapshot
- name: copy files
copy:
src: "/opt/congress/etc/{{ item }}"
dest: /etc/congress
with_items:
- api-paste.ini
- policy.json
# - congress.conf.sample