Merge "Migrate Octavia to external_deploy_task"
This commit is contained in:
commit
b5ae65fe1e
@ -149,6 +149,43 @@ resources:
|
|||||||
default_key_pair:
|
default_key_pair:
|
||||||
type: OS::Nova::KeyPair
|
type: OS::Nova::KeyPair
|
||||||
external_id: default
|
external_id: default
|
||||||
|
OctaviaVars:
|
||||||
|
type: OS::Heat::Value
|
||||||
|
properties:
|
||||||
|
type: json
|
||||||
|
value:
|
||||||
|
vars:
|
||||||
|
os_auth_type: "password"
|
||||||
|
os_identity_api_version: "3"
|
||||||
|
amp_image_name: { get_param: OctaviaAmphoraImageName }
|
||||||
|
amp_image_filename: {get_param: OctaviaAmphoraImageFilename }
|
||||||
|
amp_image_tag: { get_param: OctaviaAmphoraImageTag }
|
||||||
|
amp_ssh_key_name: { get_param: OctaviaAmphoraSshKeyName }
|
||||||
|
amp_ssh_key_path: { get_param: OctaviaAmphoraSshKeyFile }
|
||||||
|
amp_ssh_key_data: { get_attr: [default_key_pair, public_key] }
|
||||||
|
auth_username: { get_param: OctaviaUserName }
|
||||||
|
auth_password: { get_param: OctaviaPassword }
|
||||||
|
auth_project_name: { get_param: OctaviaProjectName }
|
||||||
|
lb_mgmt_net_name: { get_param: OctaviaControlNetwork }
|
||||||
|
lb_mgmt_subnet_name: { get_param: OctaviaControlSubnet }
|
||||||
|
lb_sec_group_name: { get_param: OctaviaControlSubnet }
|
||||||
|
lb_mgmt_subnet_cidr: { get_param: OctaviaControlSubnetCidr }
|
||||||
|
lb_mgmt_subnet_gateway: { get_param: OctaviaControlSubnetGateway }
|
||||||
|
lb_mgmt_subnet_pool_start: { get_param: OctaviaControlSubnetPoolStart }
|
||||||
|
lb_mgmt_subnet_pool_end: { get_param: OctaviaControlSubnetPoolEnd }
|
||||||
|
ca_cert_path: { get_param: OctaviaCaCertFile }
|
||||||
|
ca_private_key_path: { get_param: OctaviaCaKeyFile }
|
||||||
|
ca_passphrase: { get_param: OctaviaCaKeyPassphrase }
|
||||||
|
client_cert_path: { get_param: OctaviaClientCertFile }
|
||||||
|
generate_certs: { get_param: OctaviaGenerateCerts }
|
||||||
|
mgmt_port_dev: { get_param: OctaviaMgmtPortDevName }
|
||||||
|
os_password: { get_param: AdminPassword }
|
||||||
|
os_project_name: 'admin'
|
||||||
|
os_username: 'admin'
|
||||||
|
octavia_ansible_playbook: '/usr/share/tripleo-common/playbooks/octavia-files.yaml'
|
||||||
|
os_auth_url: { get_param: [EndpointMap, KeystoneV3Public, uri] }
|
||||||
|
octavia_local_tmpdir: "{{playbook_dir}}/octavia-ansible/local_dir"
|
||||||
|
octavia_group_vars_dir: "{{playbook_dir}}/octavia-ansible/group_vars"
|
||||||
|
|
||||||
outputs:
|
outputs:
|
||||||
role_data:
|
role_data:
|
||||||
@ -162,35 +199,79 @@ outputs:
|
|||||||
step_config: ''
|
step_config: ''
|
||||||
docker_config: {}
|
docker_config: {}
|
||||||
config_settings: {}
|
config_settings: {}
|
||||||
workflow_tasks:
|
external_deploy_tasks:
|
||||||
step5:
|
- name: octavia_post_deploy
|
||||||
- name: octavia_post_workflow
|
when: step == '5'
|
||||||
workflow: { get_param: OctaviaPostWorkflowName }
|
block:
|
||||||
input:
|
- name: Set up group_vars
|
||||||
amp_image_name: { get_param: OctaviaAmphoraImageName }
|
set_fact:
|
||||||
amp_image_filename: {get_param: OctaviaAmphoraImageFilename }
|
octavia_ansible_group_vars: { get_attr: [OctaviaVars, value, vars] }
|
||||||
amp_image_tag: { get_param: OctaviaAmphoraImageTag }
|
- name: Make needed directories on the undercloud
|
||||||
amp_ssh_key_name: { get_param: OctaviaAmphoraSshKeyName }
|
file:
|
||||||
amp_ssh_key_path: { get_param: OctaviaAmphoraSshKeyFile }
|
path: "{{item}}"
|
||||||
amp_ssh_key_data: { get_attr: [default_key_pair, public_key] }
|
state: directory
|
||||||
auth_username: { get_param: OctaviaUserName }
|
with_items:
|
||||||
auth_password: { get_param: OctaviaPassword }
|
- "{{ octavia_ansible_group_vars.octavia_local_tmpdir }}"
|
||||||
auth_project_name: { get_param: OctaviaProjectName }
|
- "{{ octavia_ansible_group_vars.octavia_group_vars_dir }}"
|
||||||
lb_mgmt_net_name: { get_param: OctaviaControlNetwork }
|
- name: Write group_vars file
|
||||||
lb_mgmt_subnet_name: { get_param: OctaviaControlSubnet }
|
copy:
|
||||||
lb_sec_group_name: { get_param: OctaviaControlSubnet }
|
dest: "{{ octavia_ansible_group_vars.octavia_group_vars_dir }}/octavia_vars.yaml"
|
||||||
lb_mgmt_subnet_cidr: { get_param: OctaviaControlSubnetCidr }
|
content: "{{ octavia_ansible_group_vars|to_nice_yaml }}"
|
||||||
lb_mgmt_subnet_gateway: { get_param: OctaviaControlSubnetGateway }
|
- name: Write octavia inventory
|
||||||
lb_mgmt_subnet_pool_start: { get_param: OctaviaControlSubnetPoolStart }
|
copy:
|
||||||
lb_mgmt_subnet_pool_end: { get_param: OctaviaControlSubnetPoolEnd }
|
dest: "{{playbook_dir}}/octavia-ansible/inventory.yaml"
|
||||||
ca_cert_path: { get_param: OctaviaCaCertFile }
|
content: |
|
||||||
ca_private_key_path: { get_param: OctaviaCaKeyFile }
|
octavia_nodes:
|
||||||
ca_passphrase: { get_param: OctaviaCaKeyPassphrase }
|
hosts:
|
||||||
client_cert_path: { get_param: OctaviaClientCertFile }
|
|
||||||
generate_certs: { get_param: OctaviaGenerateCerts }
|
{%- set octavia_groups = ['worker'] -%}
|
||||||
mgmt_port_dev: { get_param: OctaviaMgmtPortDevName }
|
{%- for octavia_group in octavia_groups -%}
|
||||||
overcloud_password: { get_param: AdminPassword }
|
{%- if 'octavia_' ~ octavia_groups %}
|
||||||
overcloud_project: 'admin'
|
|
||||||
overcloud_admin: 'admin'
|
{% for host in groups['octavia_' ~ octavia_group] -%}
|
||||||
octavia_ansible_playbook: '/usr/share/tripleo-common/playbooks/octavia-files.yaml'
|
{{ hostvars.raw_get(host)['ansible_hostname'] }}:
|
||||||
overcloud_pub_auth_uri: { get_param: [EndpointMap, KeystoneV3Public, uri] }
|
ansible_user: {{ hostvars.raw_get(host)['ansible_ssh_user'] | default('heat-admin') }}
|
||||||
|
ansible_host: {{ hostvars.raw_get(host)['ansible_host'] | default(host) }}
|
||||||
|
ansible_become: true
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
{%- endif -%}
|
||||||
|
{%- endfor %}
|
||||||
|
|
||||||
|
Undercloud:
|
||||||
|
hosts:
|
||||||
|
{% for host in groups['Undercloud'] -%}
|
||||||
|
{{ hostvars.raw_get(host)['ansible_hostname'] }}:
|
||||||
|
ansible_host: {{ hostvars.raw_get(host)['ansible_host'] | default(host) }}
|
||||||
|
ansible_become: false
|
||||||
|
ansible_connection: local
|
||||||
|
|
||||||
|
{%- endfor -%}
|
||||||
|
- name: Check for ssh_private_key in working directory
|
||||||
|
stat:
|
||||||
|
path: "{{playbook_dir}}/ssh_private_key"
|
||||||
|
register: st
|
||||||
|
- name: Set private key location
|
||||||
|
set_fact:
|
||||||
|
ansible_ssh_key: "{{ playbook_dir+'/ssh_private_key' if st.stat.exists else '~/.ssh/id_rsa' }}"
|
||||||
|
- name: Configure octavia command
|
||||||
|
set_fact:
|
||||||
|
config_octavia_cmd: ansible-playbook -i "{{playbook_dir}}/octavia-ansible/inventory.yaml" --extra-vars @"{{ octavia_ansible_group_vars.octavia_group_vars_dir }}"/octavia_vars.yaml "{{ octavia_ansible_group_vars.octavia_ansible_playbook }}" --private-key "{{ ansible_ssh_key }}"
|
||||||
|
- set_fact:
|
||||||
|
octavia_log_dir: "{{playbook_dir}}/octavia-ansible/"
|
||||||
|
- debug:
|
||||||
|
msg: "Configure Octavia command is: {{ config_octavia_cmd }}"
|
||||||
|
- name: Configure octavia on overcloud
|
||||||
|
environment:
|
||||||
|
ANSIBLE_HOST_KEY_CHECKING: False
|
||||||
|
ANSIBLE_SSH_RETRIES: 3
|
||||||
|
ANSIBLE_RETRY_FILES_ENABLED: false
|
||||||
|
ANSIBLE_LOCAL_TEMP: "{{ octavia_ansible_group_vars.octavia_local_tmpdir }}"
|
||||||
|
ANSIBLE_LOG_PATH: "{{ octavia_log_dir }}/octavia-ansible.log"
|
||||||
|
shell: "{{ config_octavia_cmd }}"
|
||||||
|
- name: Purge temp dirs
|
||||||
|
file:
|
||||||
|
state: absent
|
||||||
|
path: "{{ item }}"
|
||||||
|
with_items:
|
||||||
|
- "{{ octavia_ansible_group_vars.octavia_local_tmpdir }}"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user