bifrost/playbooks/roles/bifrost-configdrives/tasks/main.yml
Julia Kreger 05063d79dc Adding support for future network configuration systems
Added a basic template that can be parsed by glean or the
future version of cloud-init, largely to allow a user to deploy
a node without cloud-init.
2015-04-20 15:42:33 -04:00

67 lines
3.5 KiB
YAML

# Copyright (c) 2015 Hewlett-Packard Development Company, L.P.
#
# 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: "Identify ssh_public_key if ssh_public_key_path is defined"
include: ssh_public_key_path.yaml
when: ssh_public_key is undefined and ssh_public_key_path is defined
- name: "Name Make Temporary folder to build configdrive"
local_action: command mktemp -d
register: variable_configdrive_location
- name: "Make Metadata folder - /openstack/2012-08-10"
local_action: file state=directory name={{ variable_configdrive_location.stdout }}/{{item.split(',')[9]}}/openstack/2012-08-10/
with_lines:
- cat {{ baremetal_csv_file }}
- name: "Make Metadata folder - /openstack/latest"
local_action: file state=directory name={{ variable_configdrive_location.stdout }}/{{item.split(',')[9]}}/openstack/latest/
with_lines:
- cat {{ baremetal_csv_file }}
- name: "Place template in each openstack/2012-08-10 folder"
local_action: template src=openstack_meta_data.json.j2 dest={{ variable_configdrive_location.stdout }}/{{item.split(',')[9]}}/openstack/2012-08-10/meta_data.json
with_lines:
- cat {{ baremetal_csv_file }}
- name: "Place template in each openstack/latest folder"
local_action: template src=openstack_meta_data.json.j2 dest={{ variable_configdrive_location.stdout }}/{{item.split(',')[9]}}/openstack/latest/meta_data.json
with_lines:
- cat {{ baremetal_csv_file }}
- name: "Place network info template in each openstack/latest folder"
local_action: template src=network_info.json.j2 dest={{ variable_configdrive_location.stdout }}/{{item.split(',')[9]}}/openstack/latest/network_info.json
with_lines:
- cat {{ baremetal_csv_file }}
- name: "Make Metadata folder - /openstack/latest"
local_action: file state=directory name={{ variable_configdrive_location.stdout }}/{{item.split(',')[9]}}/openstack/content/
with_lines:
- cat {{ baremetal_csv_file }}
- name: "Write network interface template"
local_action: template src=interfaces.j2 dest={{ variable_configdrive_location.stdout }}/{{item.split(',')[9]}}/openstack/content/0000
with_lines:
- cat {{ baremetal_csv_file }}
- name: "Make config drive files"
sudo: yes
local_action: command mkisofs -R -V config-2 -o {{http_boot_folder}}/configdrive-{{item.split(',')[9]}}.iso {{ variable_configdrive_location.stdout }}/{{item.split(',')[9]}}
with_lines:
- cat {{ baremetal_csv_file }}
- name: "Make config drive files base64 encoded and gzip compressed"
sudo: yes
local_action: shell gzip -c {{http_boot_folder}}/configdrive-{{item.split(',')[9]}}.iso | base64 > {{http_boot_folder}}/configdrive-{{item.split(',')[9]}}.iso.gz
with_lines:
- cat {{ baremetal_csv_file }}
- name: "Cleanup configdrive .iso files"
sudo: yes
local_action: file state=absent name={{http_boot_folder}}/configdrive-{{item.split(',')[9]}}.iso
with_lines:
- cat {{ baremetal_csv_file }}
- name: "Cleanup configdrive temp folder"
sudo: yes
local_action: file state=absent force=yes name={{ variable_configdrive_location.stdout }}