Friday, 17 January 2014

LXC and Puppet dev env in 60 seconds


  1. lxc-create -n puppetmaster01 -t debian
  2. lxc-create -n puppetclient01 -t debian
  3. /etc/default/lxc-net
    1. find subnet defined by LXC_NETWORK
  4. vi /var/lib/lxc/puppetmaster01/config
    1. add ip addr ending in .100 to subnet
      1. for example, lxc.network.ipv4 = 10.0.1.100/24
  5. vi /var/lib/lxc/puppetclient01/config
    1. add ip add ending in .101 to subnet
      1. for example, lxc.network.ipv4 = 10.0.1.101/24
  6. lxc-start -d -n puppetmaster01
    1. don't forget the "-d" or you'll be stuck in tty session
  7. lxc-start -d -n puppetclient01
  8. lxc-attach -n puppetmaster
    1. apt-get install puppetmaster
  9. lxc-attach -n puppetclient01
    1. apt-get install puppet
    2. vi /etc/hosts and add entry "puppet" to point at pmaster
WARNING: for distro "saucy" as your container/host system, dnsmasq is broken, vms can not get DHCP IP address from dnsmasq. To attempt to fix, try:
  1. sudo iptables -t mangle -A POSTROUTING -o lxcbr0 -p udp --dport bootpc -j CHECKSUM --checksum-fill
  2. refresh vm IP
    1. stop and start vm, 
    2. or kill existing dhclient process on vm, and run dhclient by hand
      1. pkill dhclient
      2. dhclient -v eth0
  3. If that doesn't help your vm to get an IP address from dnsmasq
    1. delete the iptables rule you just created
      1. iptables -L -t mangle -n --line-numbers
        1. show existing rule numbers in left column
      2. iptables -t mangle -D POSTROUTING <rule #>
        1. for example, iptables -t mangle -D POSTROUTING 1


No comments:

Post a Comment

Note: only a member of this blog may post a comment.

Interview questions: 2020-12

Terraform provider vs provisioner Load balancing Network Load Balancer vs Application Load Balancer  Networking Layer 1 vs Layer 4 haproxy u...