Skip to content

Commit

Permalink
add container configuration and creation from host
Browse files Browse the repository at this point in the history
  • Loading branch information
tclavier committed Mar 5, 2012
1 parent f1d5bee commit af7896e
Show file tree
Hide file tree
Showing 4 changed files with 102 additions and 0 deletions.
2 changes: 2 additions & 0 deletions manifests/container.pp
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
# the container itself could be configured by puppet
class puppet-lxc::container {
# we must remove klogd to avoid bug in multy-read kernel messages
package { ["klogd"]: ensure => purged; }
}

28 changes: 28 additions & 0 deletions manifests/vm.pp
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# defined container from host
class puppet-lxc::vm ( $ip, $mac, $passwd, $distrib ) {
file {
"/var/lib/lxc/${name}/preseed.cfg" :
owner => "root",
group => "root",
mode => 0644,
content => template("puppet-lxc/preseed.cfg.erb");
"/var/lib/lxc/${name}/rootfs/etc/network/interfaces" :
owner => "root",
group => "root",
mode => 0644,
require => Exec ["create ${name} container"]
subscribe => Exec ["create ${name} container"]
content => template("puppet-lxc/interface.erb");
}

exec {
"create ${name} container":
command => "/usr/lib/lxc/templates/lxc-debian --preseed-file=/var/lib/lxc/${name}/preseed.cfg -p /var/lib/lxc/${name} -n ${name}",
require => File ["/var/lib/lxc/${name}/preseed.cfg"],
refreshonly => false,
creates => "/var/lib/lxc/${name}/config"
}


}

25 changes: 25 additions & 0 deletions templates/interface.erb
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
<%
if hebergeur == "ovh"
digit = ipaddress.split('.')
digit[3] = '254'
gw = digit.join('.')
else
gw = ipaddress
end
%>
#
# File managed by puppet directly on hyperviser
#

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address <%= ip %>
netmask 255.255.255.255
broadcast <%= ip %>
post-up route add <%= gw %> dev eth0
post-up route add default gw <%= gw %>
post-down route del <%= gw %> dev eth0
post-down route del default gw <%= gw %>
47 changes: 47 additions & 0 deletions templates/preseed.cfg.erb
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
## LXC

# lxc-debconf
linux-container linux-container/debconf-frontend select noninteractive
#linux-container linux-container/debconf-priority select critical

linux-container linux-container/distribution string <%= distrib %>
linux-container linux-container/architecture select
linux-container linux-container/packages string puppet lsb-release linux-container

linux-container linux-container/mirror string http://ftp.fr.debian.org/debian/
linux-container linux-container/mirror-security string http://ftp.fr.debian.org/debian-security/
linux-container linux-container/mirror-backports string http://ftp.fr.debian.org/debian-backports/

linux-container linux-container/archives multiselect
linux-container linux-container/archive-areas multiselect main

linux-container linux-container/auto boolean true
linux-container linux-container/capabilities string mac_admin mac_override sys_admin sys_module
linux-container linux-container/late-command string

# linux-container
linux-container linux-container/enable boolean true
linux-container linux-container/consoles string 6
linux-container linux-container/hostname string vm17

linux-container linux-container/eth0/comment string The primary network interface
linux-container linux-container/eth0/dhcp boolean false
linux-container linux-container/eth0/mac string <%= mac %>
linux-container linux-container/eth0/address string <%= ip %>
linux-container linux-container/eth0/broadcast string <%= ip %>
linux-container linux-container/eth0/bridge string br0

# TODO: bad hack to rebuild openssh host key
linux-container linux-container/late-command string apt-get install --reinstall openssh-server

## System

# tzdata
tzdata tzdata/Areas select Europe
tzdata tzdata/Zones/Etc select UTC
tzdata tzdata/Zones/Europe select Paris

# root password
user-setup passwd/root-password string <%= passwd %>
user-setup passwd/root-password-again string <%= passwd %>

0 comments on commit af7896e

Please sign in to comment.