blob: d5e70e1a094fb425252250081bca07ee07721d9d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
|
##############################################################################
# Copyright (c) 2016 HUAWEI TECHNOLOGIES CO.,LTD and others.
#
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Apache License, Version 2.0
# which accompanies this distribution, and is available at
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
---
- name: get http server
shell: awk -F'=' '/compass_server/ {print $2}' /etc/compass.conf
register: http_server
- name: creat tacker_home, tacker_client_home, tacker_horizon_home
shell: >
mkdir -p /opt/tacker
mkdir -p /opt/tacker_client
mkdir -p /opt/tacker_horizon
- name: download tacker package
get_url: url="http://{{ http_server.stdout_lines[0] }}/packages/tacker/{{ tacker_pkg_name }}" dest=/opt/{{ tacker_pkg_name }}
- name: download tacker_client package
get_url: url="http://{{ http_server.stdout_lines[0] }}/packages/tacker/{{ tacker_client_pkg_name }}" dest=/opt/{{ tacker_client_pkg_name }}
- name: download tacker_horizon package
get_url: url="http://{{ http_server.stdout_lines[0] }}/packages/tacker/{{ tacker_horizon_pkg_name }}" dest=/opt/{{ tacker_horizon_pkg_name }}
- name: extract tacker package
command: su -s /bin/sh -c "tar xzf /opt/{{ tacker_pkg_name }} -C {{ tacker_home }} --strip-components 1 --no-overwrite-dir -k --skip-old-files"
- name: extract tacker_client package
command: su -s /bin/sh -c "tar xzf /opt/{{ tacker_client_pkg_name }} -C {{ tacker_client_home }} --strip-components 1 --no-overwrite-dir -k --skip-old-files"
- name: extract tacker_horizon package
command: su -s /bin/sh -c "tar xzf /opt/{{ tacker_horizon_pkg_name }} -C {{ tacker_horizon_home }} --strip-components 1 --no-overwrite-dir -k --skip-old-files"
- name: edit ml2_conf.ini
shell: crudini --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 extension_drivers port_security;
- name: Restart neutron-server
service: name=neutron-server state=restarted
- name: "create haproxy configuration for tacker"
template:
src: "haproxy-tacker-cfg.j2"
dest: "/tmp/haproxy-tacker.cfg"
- name: "combination of the haproxy configuration"
shell: "cat /tmp/haproxy-tacker.cfg >> /etc/haproxy/haproxy.cfg"
- name: "delete temporary configuration file"
file:
dest: "/tmp/haproxy-tacker.cfg"
state: "absent"
- name: "restart haproxy"
service:
name: "haproxy"
state: "restarted"
- name: drop and recreate tacker database
shell: mysql -e "drop database if exists tacker;";
mysql -e "create database tacker character set utf8;";
mysql -e "grant all on tacker.* to 'tacker'@'%' identified by 'TACKER_DBPASS';";
when: inventory_hostname == haproxy_hosts.keys()[0]
- name: create tacker user with admin privileges
shell: . /opt/admin-openrc.sh; openstack user create --password console tacker; openstack role add --project service --user tacker admin;
when: inventory_hostname == haproxy_hosts.keys()[0]
- name: creat tacker service
shell: >
. /opt/admin-openrc.sh; openstack service create --name tacker --description "Tacker Project" nfv-orchestration
when: inventory_hostname == haproxy_hosts.keys()[0]
- name: provide an endpoint to tacker service
shell: >
. /opt/admin-openrc.sh; openstack endpoint create --region RegionOne \
--publicurl 'http://{{ public_vip.ip }}:8890/' \
--adminurl 'http://{{ internal_vip.ip }}:8890/' \
--internalurl 'http://{{ internal_vip.ip }}:8890/' tacker
when: inventory_hostname == haproxy_hosts.keys()[0]
- name: install tacker
shell: >
. /opt/admin-openrc.sh; pip install tosca-parser; cd {{ tacker_home }}; python setup.py install
# - name: create 'tacker' directory in '/var/cache', set ownership and permissions
# shell: >
# sudo mkdir /var/cache/tacker
# sudo chown <LOGIN_USER>:root /var/cache/tacker
# sudo chmod 700 /var/cache/tacker
- name: create 'tacker' directory in '/var/log'
shell: mkdir -p /var/log/tacker
- name: copy tacker configs
template: src={{ item.src }} dest=/opt/os_templates
with_items: "{{ tacker_configs_templates }}"
- name: edit tacker configuration file
shell: crudini --merge /usr/local/etc/tacker/tacker.conf < /opt/os_templates/tacker.j2
#- name: populate tacker database
# shell: >
# . /opt/admin-openrc.sh; /usr/local/bin/tacker-db-manage --config-file /usr/local/etc/tacker/tacker.conf upgrade head
- name: install tacker client
shell: >
. /opt/admin-openrc.sh; cd {{ tacker_client_home }}; python setup.py install
- name: install tacker horizon
shell: >
. /opt/admin-openrc.sh; cd {{ tacker_horizon_home }}; python setup.py install
- name: enable tacker horizon in dashboard
shell: >
cp {{ tacker_horizon_home }}/openstack_dashboard_extensions/* /usr/share/openstack-dashboard/openstack_dashboard/enabled/
- name: restart apache server
shell: service apache2 restart
- name: launch tacker-server
shell: >
. /opt/admin-openrc.sh; python /usr/local/bin/tacker-server --config-file /usr/local/etc/tacker/tacker.conf --log-file /var/log/tacker/tacker.log
async: 9999999999999
poll: 0
|