From c9ab72e3074602c8fcd67c8e63b7b4675e154263 Mon Sep 17 00:00:00 2001 From: Dalton Hubble Date: Tue, 19 Jan 2016 10:58:37 -0800 Subject: [PATCH] dnsmasq: Update references to quay.io/coreos/dnsmasq * Convenience image for using dnsmasq, hosted to get users started quickly * Resolves #28 --- Documentation/physical-hardware.md | 8 +++++--- Documentation/virtual-hardware.md | 10 ++++++---- dockerfiles/dnsmasq/README.md | 4 +++- examples/README.md | 2 +- 4 files changed, 15 insertions(+), 9 deletions(-) diff --git a/Documentation/physical-hardware.md b/Documentation/physical-hardware.md index d319a3db..2069547d 100644 --- a/Documentation/physical-hardware.md +++ b/Documentation/physical-hardware.md @@ -29,7 +29,9 @@ Note, the kernel options in the `Spec` [examples](../examples) reference 172.17. Your network may already have a configurable PXE or iPXE server, configurable DHCP, a DHCP server you cannot modify, or no DHCP server at all. We'll show how to setup each network environment to talk to `bootcfg`, depending on your circumstances. -Several setups use the [dnsmasq](http://www.thekelleys.org.uk/dnsmasq/doc.html) program and included [coreos/dnsmasq](../dockerfiles/dnsmasq) docker image to run a PXE-enabled DHCP server, proxy DHCP server, or TFTP server as needed. Build the Docker image if needed. +The [quay.io/coreos/dnsmasq](https://quay.io/repository/coreos/dnsmasq) image can be used to run DHCP, proxy DHCP, and TFTP. It can be built from the [dockerfiles](../dockerfiles/dnsmasq) or pulled from Quay. + + docker pull quay.io/coreos/dnsmasq ### Configurable iPXE @@ -66,7 +68,7 @@ If the network already runs a DHCP service, setup a PXE/iPXE network environment Run DHCP in proxy mode to respond to DHCP requests on the subnet. Optionally, serve the `undionly.pxe` boot file to older, non-iPXE clients (the '#' means not). Detect iPXE clients by the user class sent in their DHCPDISCOVER (or by Option 175) and point them to the `bootcfg` iPXE boot script. ``` -sudo docker run --net=host --rm --cap-add=NET_ADMIN coreos/dnsmasq -d -q -i enp0s25 --dhcp-range=192.168.1.1,proxy,255.255.255.0 --enable-tftp --tftp-root=/var/lib/tftpboot --dhcp-userclass=set:ipxe,iPXE --pxe-service=tag:#ipxe,x86PC,"PXE chainload to iPXE",undionly.kpxe --pxe-service=tag:ipxe,x86PC,"iPXE",http://192.168.1.100:8080/boot.ipxe +sudo docker run --net=host --rm --cap-add=NET_ADMIN quay.io/coreos/dnsmasq -d -q -i enp0s25 --dhcp-range=192.168.1.1,proxy,255.255.255.0 --enable-tftp --tftp-root=/var/lib/tftpboot --dhcp-userclass=set:ipxe,iPXE --pxe-service=tag:#ipxe,x86PC,"PXE chainload to iPXE",undionly.kpxe --pxe-service=tag:ipxe,x86PC,"iPXE",http://192.168.1.100:8080/boot.ipxe ``` Change the `dhcp-range`, `-i interface`, and boot.ipxe endpoint to match your environment. @@ -82,7 +84,7 @@ Identify a host machine which should run the DHCP service. If this machine has t Run DHCP to allocate IP address leases and TFTP to serve the `undionly.pxe` boot file to older, non-iPXE clients (the '#' means not). Point iPXE clients to the `bootcfg` iPXE boot script. ``` -sudo docker run --net=host --rm --cap-add=NET_ADMIN coreos/dnsmasq -d -q -i enp0s20u1 --dhcp-range=192.168.1.101,192.168.1.150 --enable-tftp --tftp-root=/var/lib/tftpboot --dhcp-userclass=set:ipxe,iPXE --dhcp-boot=tag:#ipxe,undionly.kpxe --dhcp-boot=tag:ipxe,http://192.168.1.100:8080/boot.ipxe +sudo docker run --net=host --rm --cap-add=NET_ADMIN quay.io/coreos/dnsmasq -d -q -i enp0s20u1 --dhcp-range=192.168.1.101,192.168.1.150 --enable-tftp --tftp-root=/var/lib/tftpboot --dhcp-userclass=set:ipxe,iPXE --dhcp-boot=tag:#ipxe,undionly.kpxe --dhcp-boot=tag:ipxe,http://192.168.1.100:8080/boot.ipxe ``` Change the `dhcp-range`, `-i interface`, and boot.ipxe endpoint to match your environment. diff --git a/Documentation/virtual-hardware.md b/Documentation/virtual-hardware.md index e7a9d7cd..117d2d36 100644 --- a/Documentation/virtual-hardware.md +++ b/Documentation/virtual-hardware.md @@ -24,7 +24,9 @@ Note, the kernel options in the `Spec` [examples](../examples) reference 172.17. We'll show how to setup PXE, iPXE, or Pixiecore network boot environments on the `docker0` bridge and configure them to use `bootcfg`. -The [dnsmasq](http://www.thekelleys.org.uk/dnsmasq/doc.html) program and included [coreos/dnsmasq](../dockerfiles/dnsmasq) docker image will be used to run DHCP and TFTP. Build the Docker image before continuing. +The [quay.io/coreos/dnsmasq](https://quay.io/repository/coreos/dnsmasq) image can be used to run DHCP, proxyDHCP, and TFTP. It can be built from the [dockerfiles](../dockerfiles/dnsmasq) or pulled from Quay. + + docker pull quay.io/coreos/dnsmasq ### PXE @@ -42,7 +44,7 @@ With `dnsmasq`, the relevant `dnsmasq.conf` settings would be: Create a PXE/iPXE network environment by running a PXE-enabled DHCP server and TFTP server on the `docker0` bridge, alongside `bootcfg`. ``` -sudo docker run --rm --cap-add=NET_ADMIN coreos/dnsmasq -d -q --dhcp-range=172.17.0.43,172.17.0.99 --enable-tftp --tftp-root=/var/lib/tftpboot --dhcp-userclass=set:ipxe,iPXE --dhcp-boot=tag:#ipxe,undionly.kpxe --dhcp-boot=tag:ipxe,http://172.17.0.2:8080/boot.ipxe +sudo docker run --rm --cap-add=NET_ADMIN quay.io/coreos/dnsmasq -d -q --dhcp-range=172.17.0.43,172.17.0.99 --enable-tftp --tftp-root=/var/lib/tftpboot --dhcp-userclass=set:ipxe,iPXE --dhcp-boot=tag:#ipxe,undionly.kpxe --dhcp-boot=tag:ipxe,http://172.17.0.2:8080/boot.ipxe ``` The `coreos/dnsmasq` image runs DHCP and TFTP as a container. It allocates IPs in the `docker0` subnet to VMs and sends options to chainload older PXE clients to iPXE. iPXE clients are pointed to the `bootcfg` service iPXE endpoint (assumed to be running on 172.17.0.2:8080). @@ -73,7 +75,7 @@ Create a Pixiecore network environment by running a DHCP server and `danderson/p Run a DHCP server (not PXE-enabled) ``` -sudo docker run --rm --cap-add=NET_ADMIN coreos/dnsmasq -d -q --dhcp-range=172.17.0.43,172.17.0.99 +sudo docker run --rm --cap-add=NET_ADMIN quay.io/coreos/dnsmasq -d -q --dhcp-range=172.17.0.43,172.17.0.99 ``` Run Pixiecore, using a script which detects the `bootcfg` container IP:port on docker0. @@ -119,4 +121,4 @@ Restart the client machine and it should PXE boot using settings from `bootcfg`. ## Next -If you'd like to boot and configure a baremetal machine network, follow the [baremetal guide](physical-hardware.md). \ No newline at end of file +If you'd like to boot and configure a baremetal machine network, follow the [baremetal guide](physical-hardware.md). diff --git a/dockerfiles/dnsmasq/README.md b/dockerfiles/dnsmasq/README.md index 48a7e8b0..c4a0e81f 100644 --- a/dockerfiles/dnsmasq/README.md +++ b/dockerfiles/dnsmasq/README.md @@ -1,7 +1,9 @@ # coreos/dnsmasq -The coreos/dnsmasq Docker image provides an entrypoint to [dnsmasq](http://www.thekelleys.org.uk/dnsmasq/doc.html) for running dnsmasq DHCP, proxyDHCP, and TFTP. This is useful for testing different network setups without requiring changes to `dnsmasq.conf` on your host. The image also bundles `undionly.kpxe` which can be used to chainload PXE clients to iPXE. +[coreos/dnsmasq](https://quay.io/repository/coreos/dnsmasq) is a convenience entrypoint to [dnsmasq](http://www.thekelleys.org.uk/dnsmasq/doc.html) for running DHCP, proxy DHCP, and TFTP without making changes to the host `/etc/dnsmasq.conf`. + +The image bundles `undionly.kpxe` which chainloads PXE clients to iPXE. ## Usage diff --git a/examples/README.md b/examples/README.md index acf946e1..5aec0717 100644 --- a/examples/README.md +++ b/examples/README.md @@ -77,7 +77,7 @@ The following examples require a few additional assets be downloaded or generate Run an iPXE setup with DHCP and TFTP on the virtual network on your machine similar to what would be present on a real network. This allocates IP addresses to VM hosts, points PXE booting clients to the config service, and chainloads iPXE. - docker run --rm --cap-add=NET_ADMIN coreos/dnsmasq -d -q --dhcp-range=172.17.0.43,172.17.0.99 --enable-tftp --tftp-root=/var/lib/tftpboot --dhcp-userclass=set:ipxe,iPXE --dhcp-boot=tag:#ipxe,undionly.kpxe --dhcp-boot=tag:ipxe,http://172.17.0.2:8080/boot.ipxe + docker run --rm --cap-add=NET_ADMIN quay.io/coreos/dnsmasq -d -q --dhcp-range=172.17.0.43,172.17.0.99 --enable-tftp --tftp-root=/var/lib/tftpboot --dhcp-userclass=set:ipxe,iPXE --dhcp-boot=tag:#ipxe,undionly.kpxe --dhcp-boot=tag:ipxe,http://172.17.0.2:8080/boot.ipxe You may need to update your firewall to allow DHCP and TFTP services. If your config service container has a different IP address or subnet, the IPs in examples will require some adjustments to match your local setup.