openstack-ansible-ops/pxelinux-provisioning/README.rst
Kevin Carter fcfd902048
add bionic support to the basic provisioning
Change-Id: I29fe3f507000663d7b9e801003010d4f76c17940
Signed-off-by: Kevin Carter <kevin.carter@rackspace.com>
2018-05-11 16:11:39 -05:00

77 lines
2.9 KiB
ReStructuredText

OpenStack-Ansible pxelinux Provisioning
#######################################
:date: 2018-04-24
:tags: rackspace, openstack, ansible
:category: \*openstack, \*nix
About this repository
---------------------
This repository provides for basic "pxelinux" provisioning using debian based
operating systems.
A complete set of options can be seen within the ``playbook/group_vars/all.yml``
file.
These provisioning playbooks have been created to use static inventory. Example
static inventory used for these playbooks can be seen in the
``playbooks/inventory.yml`` file.
Scripts have been created to simplify the deployment of these playbooks and
install ansible however they are 100% optional.
Playbook Usage
--------------
These playbooks require three groups, ``dhcp_hosts``, ``pxe_hosts``, and
``pxe_servers``. The groups ``dhcp_hosts`` and ``pxe_hosts`` are used as targets
to install the required packages and setup the TFTP and DHCP services. The group
``pxe_servers`` is as a set of targets that to deploy a given OS.
Each host in the ``pxe_servers`` group should have the something similar to the
following configuration.
.. code-block:: yaml
$name_used_in_inventory:
ansible_os_family: "{{ default_images[default_image_name]['image_type'] }}"
server_hostname: '$hostname'
server_image: "ubuntu-18.04-amd64"
server_default_interface: 'eth0'
server_obm_ip: 192.168.1.100
server_model: PowerEdge R710
server_mac_address: 00:11:22:33:44:55
server_extra_options: ''
server_fixed_addr: "10.0.0.100"
server_domain_name: "{{ default_server_domain_name }}"
ansible_host: "{{ server_fixed_addr }}"
The options **$name_used_in_inventory** and **$hostname** need to be changed to
reflect the machine being deployed as well as the ``server_mac_address`` and
``server_obm_ip`` entries. Note ``server_obm_ip`` is optional and not a
required attribute.
With the inventory all setup the script ``build.sh`` can be used to deploy
everything or the playbooks could be run with the following commmand.
.. code-block:: bash
ansible-playbook -vv -i /root/inventory.yml
-e setup_host=${SETUP_HOST:-"true"}
-e setup_pxeboot=${SETUP_PXEBOOT:-"true"}
-e setup_dhcpd=${SETUP_DHCPD:-"true"}
-e default_image=${DEFAULT_IMAGE:-"ubuntu-18.04-amd64"}
-e default_http_proxy=${DEFAULT_HTTP_PROXY:-''}
--force-handlers
playbooks/site.yml
Once the playbooks have completed, set the ``pxe_servers`` target hosts, PXE
boot once and reboot them.
For convience a playbook named ``playbooks/idrac-config.yml`` has been added
which will do **minimal** drac reset and re-configuration which will result in
the host being ready to PXE. This playbook is **not** intended for production
use and was included **only** as an example.