From 20372e0e3270a1ef5851dad3738839e70361bbef Mon Sep 17 00:00:00 2001 From: Summer Barringer Date: Mon, 1 Jun 2015 21:43:28 -0400 Subject: [PATCH] Add DHCP documentation Documentation for users who may wish to setup or utilize their own DHCP server. Included reference to DHCP document in the Ironic install role. Made a note regarding the port numbers used in the code examples. Removed space. Removed space and changed maximum width of text. Change-Id: Ib799f40b6db99610f982790d26be1eb5b0f14ab8 Co-Authored-By: Julia Kreger Co-Authored-By: Summer Barringer --- doc/source/deploy/dhcp.rst | 59 ++++++++++++++++++++++++ playbooks/roles/ironic-install/README.md | 3 +- 2 files changed, 60 insertions(+), 2 deletions(-) create mode 100644 doc/source/deploy/dhcp.rst diff --git a/doc/source/deploy/dhcp.rst b/doc/source/deploy/dhcp.rst new file mode 100644 index 000000000..a4f87c798 --- /dev/null +++ b/doc/source/deploy/dhcp.rst @@ -0,0 +1,59 @@ +======================================= +Using Bifrost with your own DHCP server +======================================= + +The possibility exists that a user may already have a Dynamic Host +Configuration Protocol (DHCP) server on their network. + +Currently Ironic, when configured with Bifrost in standalone mode, does not +utilize a DHCP provider. This would require a manual configuration of the +DHCP server to deploy an image. Bifrost utilizes dnsmasq for this +functionality; however, any DHCP server can be utilized. This is largely +intended to function in the context of a single flat network although +conceivably the nodes can be segregated. + +What is required: + +- DHCP server on the network segment +- Appropriate permissions to change DHCP settings +- Network access to the API and conductor. Keep in mind the iPXE image does not +support ICMP redirects. + +Example DHCP server configurations +---------------------------------- +In the examples below port 8080 is used. However, the port number may vary +depending on the environment configuration. + +dnsmasq:: + + dhcp-match=set:ipxe,175 # iPXE sends a 175 option. + dhcp-boot=tag:!ipxe,undionly.kpxe,, + dhcp-boot=http://:8080/boot.ipxe + +Internet Systems Consortium DHCPd:: + + if exists user-class and option user-class = "iPXE" { + filename "http://:8080/boot.ipxe"; + } else { + filename "undionly.kpxe"; + next-server ; + } + + +Architecture +------------ + +It should be emphasized that Ironic in standalone mode is intended to be used only +in a trusted environment. + +:: + + +-------------+ + | DHCP Server | + +-------------+ + | + +--------Trusted-Network----------+ + | | + +-------------+ +-----------+ + |Ironic Server| | Server | + +-------------+ +-----------+ diff --git a/playbooks/roles/ironic-install/README.md b/playbooks/roles/ironic-install/README.md index 41fb58bee..41c1ee517 100644 --- a/playbooks/roles/ironic-install/README.md +++ b/playbooks/roles/ironic-install/README.md @@ -45,8 +45,7 @@ By default this role installs dnsmasq to act as a DHCP server for provisioning h include_dhcp_server: false -In the event of an external DHCP server being used, the user will need to configure their DHCP server such that PXE, and iPXE chain loading occurs. - +In the event of an external DHCP server being used, the user will need to configure their DHCP server such that PXE, and iPXE chain loading occurs. For additional information for setting up DHCP in this scenario refer to the Bifrost documentation file doc/source/deploy/dhcp.rst. Additional default variables exist in defaults/main.yml, however these are mainly limited to settings which are unlikely to be modified, unless a user has a custom Ironic Python Agent image, or needs to modify where the httpboot folder is set to. Dependencies