From 320ba144cb12480c88622a8a2c15c8c4cbe4ed33 Mon Sep 17 00:00:00 2001 From: Robert Nesius Date: Mon, 15 Aug 2016 00:47:33 -0700 Subject: [PATCH] bulk provisioning docs first pass --- .../images/icis_installer_workflow.png | Bin 0 -> 60011 bytes source/_static/images/icis_pxe_diagram.png | Bin 0 -> 33394 bytes source/bulk_provisioning.rst | 93 ++++++++++++++++++ 3 files changed, 93 insertions(+) create mode 100644 source/_static/images/icis_installer_workflow.png create mode 100644 source/_static/images/icis_pxe_diagram.png create mode 100644 source/bulk_provisioning.rst diff --git a/source/_static/images/icis_installer_workflow.png b/source/_static/images/icis_installer_workflow.png new file mode 100644 index 0000000000000000000000000000000000000000..e001539908655fb390fa97dcd61882845231e110 GIT binary patch literal 60011 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 literal 0 HcmV?d00001 diff --git a/source/_static/images/icis_pxe_diagram.png b/source/_static/images/icis_pxe_diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..cb788eccb85e88bf961e25db3acbbde1d35ecd40 GIT binary patch literal 33394 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 literal 0 HcmV?d00001 diff --git a/source/bulk_provisioning.rst b/source/bulk_provisioning.rst new file mode 100644 index 00000000..3686df5a --- /dev/null +++ b/source/bulk_provisioning.rst @@ -0,0 +1,93 @@ +.. _bulk_provisioning: + +Bulk Provisioning +================= + +In the data center new machines are often landed in large groups. When dealing with large amounts of new hardware, data center admins need a way to install and configure these machines with a minimal amount of effort. In support of this use case the Clear Linux team has developed some tooling and instructions on how to bulk-load machines with Clear Linux using iPXE. + +This bulk provisioning scenario is a variation on the Network Booting and installation scenario with some alterations to facillitate installing and configuring many hosts. The Clear Linux installer (Ister) was augmented to detect and find cloud-init configuration data during the install. If this data is found a cloud-init file is fetched and the host, after being rebooted by ister, uses micro config drive (ucf) to configure the host as directed by the cloud-init configuration file. + +In our pilot of this workflow we used ucf to install the trust relationships for the host to be further managed by Ansible. The cloud-init configuration file was served by a simple little web-application that Ister knows how to query for host configuration data. This allowed us to power on one hundered machines, each of which picked up the Clear Linux installer via PXE, installed Clear Linux, rebooted, and came up ready to be managed through Ansible. + +The web application that serves cloud-init configurations to Ister is uninspiringly named "Ister Cloud Init Service" (ICIS), and is available at github - https://github.com/clearlinux/ister-cloud-init-svc + +One nice attribute of this system is that once the iPXE bits are created many installer behaviors can be configured without having to regenerate the iPXE bits. + +System Architecture +~~~~~~~~~~~~~~~~~~~ + +The following diagrams illustrate the system architecture. + +.. image:: _static/images/icis_pxe_diagram.png + :align: center + :alt: pxe-server-overview + +As can be seen, ICIS is a web application (specifically a Flask application, hence managed by uwsgi under nginx) that can really run anywhere visible to hosts booting from PXE, though in our example we simply hosted it on the same system serving the pxe content. + +The following diagram illustrates the flow of information between the pxe server and a host booting into the installer via pxe. + +.. image:: _static/images/icis_installer_workflow.png + :align: center + :alt: pxe-icis-install-workflow + +Configuration Overview +~~~~~~~~~~~~~~~~~~~~~~ + +Here is a high-level overview describing setting up and configuring a bulk provisioning solution. + +* First, stand up an iPXE server as described in the :doc:`network boot ` docs. Note that you will be generating your own artifacts to be served by PXE in a later step. + +* Land `Ister Cloud Init Service `_ on the pxe server. The README in the ICIS github repo has directions on how to install and configure. + +* Generate the installer that will load and boot over PXE. Copy the relevant files into the appropriate location on the iPXE server. + + Use the `create_pxe.sh `_ script to make this easy. Note this creates the pxe-installer from the "provision" installer in Clear Linux which is a touchless installer that takes all installation information from a config file. You can get this image from a given Clear Linux release by looking in https://download.clearlinux.org/releases/XXXX/clear/ where XXXX is a Clear Linux release number. Just download the image alongside the create_pxe.sh script and name it provision.img. + +* Stage config files for ister that will govern Ister's behavior. This includes modifying the ipxe boot script to pass an additional parameter to the kernel. + + The magic that ties all of this together is that the pxe script conveys to ister the location of its configuration files via the kernel command line of the installer it kicks off. The kernel preserves its command line precisely, and ister inspects it via /proc/cmdline. + + Here is an example pxe script: + + .. code-block:: console + + #!ipxe + kernel linux quiet rdinit=/usr/lib/systemd/systemd-bootchart initcall_debug tsc=reliable no_timer_check noreplace-smp rw initrd=initrd isterconf=http://192.168.1.1/static/ister/ister.conf + initrd initrd + boot + + When the pxe installer kicks off ister it will notice location of its conf file was given on the kernel command line and fetch the file. This file in turn tells ister where to get the json template file that describes partition schemes, and which version of Clear Linux to install. This means that so long as the contents of a release are compatible with the version of software update (swupd) in the installer, this pxe installer can be told to install a newer version of Clear Linux simply by tweaking the json on the web server instead of rolling an entire new installer. + + One other important piece of configuration data in the json configuration file is the location of an ICIS configuration service. Ister will query ICIS for a role using the MAC address of the network interface being used to communicate with the ICIS service. Ister will then fetch that specific cloud-init file and configure ucd to run on first-boot against that config file. + + The `Ister Cloud Init Service `_ github repo has example ister configuration files under ``static/ister``. + + Here is an example ister-template.json file. + + .. code-block:: console + + { + "DestinationType" : "virtual", + "PartitionLayout" : [ { "disk" : "installer.img", "partition" : 1, "size" : "64M", "type" : "EFI" }, + { "disk" : "installer.img", "partition" : 2, "size" : "2G", "type" : "linux" } ], + "FilesystemTypes" : [ { "disk" : "installer.img", "partition" : 1, "type" : "vfat" }, + { "disk" : "installer.img", "partition" : 2, "type" : "ext4" } ], + "PartitionMountPoints" : [ { "disk" : "installer.img", "partition" : 1, "mount" : "/boot" }, + { "disk" : "installer.img", "partition" : 2, "mount" : "/" } ], + "Version": 6580, + "Bundles": ["kernel-native", "os-installer", "os-core-update", "os-core", "os-core-dev", "bootloader"], + "PostNonChroot": ["./installation-image-post-update-version.py"], + "IsterCloudInitSvc": ["http://192.168.1.1/"] + } + +* Configure ICIS to map MAC addresses to role files appropriately. Note, it is possible to simply specify a "default" role for any unmatched MAC address, which is handy if all install targets are to be configured identically. Then create the role files, which are cloud-init configuration files. + +* Final pre-flight check. Assuming your iPXE server is at 192.168.1.1, all of the following urls need to be working. + + - http://192.168.1.1/icis/static/ister/ister.conf + - http://192.168.1.1/icis/static/ister/ister_config.json + - http://192.168.1.1/icis/get_config/ + - http://192.168.1.1/icis/get_role/ + - http://192.168.1.1/ipxe_boot_script.txt + +* Boot an iPXE client and watch Clear Linux install.