airshipctl/roles/airship-libvirt-gate/tasks/build-infra.yaml
Alexey Odinokov 16d2c8d8c1 Reusing apache-server instead of httpd
Since we already introduced apache server for redfish,
it will be a good idea to use it for sharing iso also.
These changes add file-exchanger config that can be
used to share iso. In addition apache allows the
specified users (see rbac config) to upload files.
This may help in future to better emulate deployment
environment, where it will be necessary to do this
step after airshipctl generated iso and before
airshipctl invokes redfish to run that iso.

Change-Id: Ice47fe977fb71cf9df14d39c5ac26e365e2006f2
2020-05-01 03:17:02 +00:00

140 lines
4.8 KiB
YAML

# 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: verify that gate flavor is defined
assert:
that:
- gate_flavor is defined
- name: set flavor variables.
set_fact:
chosen_flavor: "{{ airship_gate_flavors[gate_flavor] }}"
- name: install libvirt
include_role:
name: libvirt-install
tasks_from: "{{ item }}"
with_items:
- main
- configure
- name: create pool
include_role:
name: libvirt-pool
vars:
libvirt_pool: "{{ item }}"
with_items: "{{ airship_gate_libvirt_pools }}"
- name: create networks
include_role:
name: libvirt-network
with_items: "{{ airship_gate_libvirt_networks }}"
vars:
libvirt_network: "{{ item }}"
network_action: create
- name: Create ephemeral volume
include_role:
name: libvirt-volume
vars:
libvirt_volume:
name: "{{ airship_gate_names.ephemeral_volume }}"
size: "{{ chosen_flavor.ephemeral_disk_size }}"
pool: "{{ airship_gate_names.pool }}"
volume_action: create
- name: Create target volumes
include_role:
name: libvirt-volume
vars:
libvirt_volume:
name: "{{ airship_gate_names.target_volume_prefix }}-{{ vm_index }}"
size: "{{ chosen_flavor.target_disk_size }}"
pool: "{{ airship_gate_names.pool }}"
format: "{{ chosen_flavor.disk_format }}"
volume_action: create
loop_control:
loop_var: vm_index
with_sequence: "start=1 end={{ chosen_flavor.target_vms_count }}"
- name: Create target domains
include_role:
name: libvirt-domain
vars:
libvirt_domain:
state: shutdown
name: "{{ airship_gate_names.target_vm_prefix }}-{{ vm_index }}"
memory_mb: "{{ chosen_flavor.target_vm_memory_mb }}"
vcpus: "{{ chosen_flavor.target_vm_vcpus }}"
volumes:
- name: "{{ airship_gate_names.target_volume_prefix }}-{{ vm_index }}"
device: "disk"
format: "{{ chosen_flavor.disk_format }}"
pool: "{{ airship_gate_names.pool }}"
interfaces:
- network: "{{ airship_gate_names.nat_network }}"
- network: "{{ airship_gate_names.provision_network }}"
loop_control:
loop_var: vm_index
with_sequence: "start=1 end={{ chosen_flavor.target_vms_count }}"
- name: Create ephemeral domain
include_role:
name: libvirt-domain
vars:
libvirt_domain:
enable_vnc: true
console_log_enabled: true
state: shutdown
name: "{{ airship_gate_names.ephemeral_vm }}"
memory_mb: "{{ chosen_flavor.ephemeral_vm_memory_mb }}"
vcpus: "{{ chosen_flavor.ephemeral_vm_vcpus }}"
volumes:
- name: "{{ airship_gate_names.ephemeral_volume }}"
device: "disk"
format: "{{ chosen_flavor.disk_format }}"
pool: "{{ airship_gate_names.pool }}"
interfaces:
- network: "{{ airship_gate_names.nat_network }}"
- network: "{{ airship_gate_names.provision_network }}"
- name: Add noauth sushy-emulator to apache
include_role:
name: apache-wsgi-sushy-emulator
vars:
sushy_emulator_frontend_name: airship_gate_redfish_noauth
sushy_emulator_frontend_servername: "{{ airship_gate_redfish_noauth.servername }}"
sushy_emulator_frontend_ip: "{{ airship_gate_redfish_noauth.ip }}"
sushy_emulator_frontend_http_port: "{{ airship_gate_redfish_noauth.http_port }}"
- name: Add auth sushy-emulator to apache
include_role:
name: apache-wsgi-sushy-emulator
vars:
sushy_emulator_frontend_name: airship_gate_redfish_auth
sushy_emulator_frontend_servername: "{{ airship_gate_redfish_auth.servername }}"
sushy_emulator_frontend_ip: "{{ airship_gate_redfish_auth.ip }}"
sushy_emulator_frontend_https_port: "{{ airship_gate_redfish_auth.https_port }}"
sushy_emulator_frontend_user: "{{ airship_gate_redfish_auth.user }}"
- name: Add file-exchanger to apache
include_role:
name: apache-file-exchanger
vars:
file_exchanger_name: airship_gate_file_exchanger
file_exchanger_http_port: "{{ airship_gate_file_exchanger.http_port | default(0) }}"
file_exchanger_https_port: "{{ airship_gate_file_exchanger.https_port | default(0) }}"
file_exchanger_path: "{{ airship_gate_file_exchanger.path }}"
file_exchanger_user: "{{ airship_gate_file_exchanger.user | default(None)}}"
file_exchanger_group: "{{ airship_gate_file_exchanger.group | default(None) }}"
file_exchanger_rbac: "{{ airship_gate_file_exchanger.rbac | default(None) }}"