c6e2851819
This change introduces fixes, which allows install Ironic on remote server. This may not complete list of changes required for all operations. Also added group 'target' to inventory file, which is same as localhost by default, and host in this group can be replaced by remote host. Change-Id: I59c942d2556c5e1b7eee661fb8cf13c4ae02b2d1
82 lines
3.0 KiB
YAML
82 lines
3.0 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: "Set up PXE and iPXE folders"
|
|
file: name={{item}} owner=ironic group=ironic state=directory mode=0755
|
|
with_items:
|
|
- /tftpboot
|
|
- /tftpboot/pxelinux.cfg
|
|
- "{{ http_boot_folder }}"
|
|
- "{{ http_boot_folder }}/pxelinux.cfg"
|
|
|
|
- name: "Place tftpd map-file"
|
|
copy: src=tftpboot-map-file dest=/tftpboot/map-file owner=ironic group=ironic
|
|
|
|
- name: "Disable service {{ tftp_service_name }}"
|
|
service: name="{{ tftp_service_name }}" state=stopped enabled=no
|
|
|
|
- name: "Set pxelinux.0 source (for Ubuntu >=14.10)"
|
|
set_fact:
|
|
syslinux_tftp_dir: '/usr/lib/PXELINUX'
|
|
when: ansible_distribution == 'Ubuntu' and ansible_distribution_version|version_compare('14.10', '>=')
|
|
|
|
- name: "Determine if pxelinux.0 is in place"
|
|
stat: path=/tftpboot/pxelinux.0
|
|
register: test_pxelinux
|
|
|
|
- name: "Place pxelinux.0"
|
|
copy: src={{ syslinux_tftp_dir }}/pxelinux.0 dest=/tftpboot remote_src=true
|
|
when: test_pxelinux.stat.exists == false
|
|
|
|
- name: "Place boot.ipxe helper script /etc/ironic"
|
|
copy: src=boot.ipxe dest=/etc/ironic/boot.ipxe owner=ironic group=ironic mode=0744
|
|
|
|
- name: "Pre-stage boot.ipxe into /httpboot/"
|
|
copy: src=boot.ipxe dest=/httpboot/boot.ipxe owner=ironic group=ironic mode=0744
|
|
|
|
- name: "Place tftp config file"
|
|
copy: src=xinetd.tftp dest=/etc/xinetd.d/tftp
|
|
|
|
- name: "Download ipxe files if asked"
|
|
include: get_ipxe.yml
|
|
when: download_ipxe | bool == true
|
|
|
|
- name: "Copy iPXE image into place"
|
|
copy: src={{ ipxe_dir }}/undionly.kpxe dest=/tftpboot/ remote_src=true
|
|
|
|
# NOTE(TheJulia): Copy full iPXE chain loader images in case they are required.
|
|
- name: "Copy full iPXE image into /httpboot"
|
|
copy: src={{ ipxe_dir }}/{{ ipxe_full_binary }} dest=/httpboot/ remote_src=true
|
|
|
|
- name: "Copy full iPXE image into /tftpboot"
|
|
copy: src={{ ipxe_dir }}/{{ ipxe_full_binary }} dest=/tftpboot/ remote_src=true
|
|
|
|
# Similar logic to below can be utilized to retrieve files
|
|
- name: "Determine if folder exists, else create and populate folder."
|
|
stat: path=/tftpboot/master_images
|
|
register: test_master_images
|
|
|
|
- name: "Create master_images folder"
|
|
file: name=/tftpboot/master_images state=directory owner=ironic group=ironic
|
|
when: test_master_images.stat.exists == false
|
|
|
|
- name: "Inspector - Place default tftp boot file in {{ http_boot_folder}}/pxelinux.cfg/"
|
|
template:
|
|
src=inspector-default-boot-ipxe.j2
|
|
dest="{{ http_boot_folder }}/pxelinux.cfg/default"
|
|
owner=ironic
|
|
group=ironic
|
|
when: enable_inspector | bool == true
|