{{{
apt-get install fai-client ssed extlinux
- apt-get install -t squeeze-backports drbd8-utils ganeti2 ganeti-instance-debootstrap ganeti-htools
+ apt-get install {drbd8-utils,ganeti2,ganeti-htools}/squeeze-backports ganeti-instance-debootstrap qemu-kvm
}}}
=== configure kernel modules ===
ainsl /etc/modules 'drbd minor_count=255 usermode_helper=/bin/true'
ainsl /etc/modules 'hmac'
ainsl /etc/modules 'tun'
+ ainsl /etc/modules 'ext3'
}}}
=== configure networking ===
To prevent the link address changing due to startup/shutdown of virtual
machines, explicitly set the value.
-{{{
- # /etc/networking/interfaces for foo.debian.org
+This is the interfaces file for foo.debian.org:
+{{{
auto br0
iface br0 inet static
bridge_ports eth0
netmask 255.255.255.0
}}}
-{{{
- # /etc/networking/interfaces for bar.debian.org
+This is the interfaces file for bar.debian.org:
+{{{
auto br0
iface br0 inet static
bridge_ports eth0
=== configure iptables (via ferm) ===
-ipsum loren bacon puppet: the nodes must connect to each other over the private network for drbd purposes; puppet can handle this (poorly; needs improvement)
+the nodes must connect to each other over the public and private networks for a number of reasons; see the ganeti2 module in puppet
=== instantiate the cluster ===
on the slave, append the master's /etc/ssh/ssh_host_rsa_key.pub to
/etc/ssh/userkeys/root. This is only required temporarily - once
-everything works puppet will put it/keep it there.
+everything works, puppet will put it/keep it there.
on the master node (foo):
=== create the 'dsa' variant ===
-ipsum loren bacon deboostrap+dsa
-
-* create /etc/ganeti/instance-debootstrap/variants/dsa.conf
-* add 'dsa' to /etc/ganeti/instance-debootstrap/variants.list
-* obtain ??-dsa-* from tristano:/etc/ganeti/instance-debootstrap/hooks
+Ensure that the debootstrap+dsa variant has been installed by puppet (see ganeti2 module in dsa-puppet).
----
* the primary and secondary nodes have been explicitly set
* the operating system type is 'debootstrap+dsa'
-* the network interfarce 0 (eth1 on the system) is set to the instance's interface on the public network
+* the network interfarce 0 (eth0 on the system) is set to the instance's interface on the public network
* If qux.d.o does not yet exist in DNS/LDAP, you may need --no-ip-check --no-name-check. Be careful that the hostname and IP address are not taken already!
----
=== re-configure networking ===
-Ensure that br1 is configured (rather than eth1).
+On the nodes, ensure that br1 is configured (rather than eth1).
-{{{
- # /etc/networking/interfaces for foo.debian.org
+This is the interfaces file for foo.debian.org:
+{{{
auto br0
iface br0 inet static
bridge_ports eth0
up ip link set addr $(cat /sys/class/net/$IFACE/address) dev $IFACE
}}}
+This is the interfaces file for bar.debian.org:
+
+{{{
+ auto br0
+ iface br0 inet static
+ bridge_ports eth0
+ bridge_maxwait 0
+ bridge_fd 0
+ address A.B.C.3
+ netmask 255.255.255.0
+ gateway A.B.C.254
+ up ip link set addr $(cat /sys/class/net/$IFACE/address) dev $IFACE
+
+ auto br1
+ iface br1 inet static
+ bridge_ports eth1
+ bridge_maxwait 0
+ bridge_fd 0
+ address E.F.G.3
+ netmask 255.255.255.0
+ up ip link set addr $(cat /sys/class/net/$IFACE/address) dev $IFACE
+}}}
+
=== create or update the instance ===
-When creating the instance, indicate both netwokrs:
+When creating the instance, indicate both networks:
{{{
gnt-instance add \
--os-type debootstrap+dsa \
--hypervisor-parameters kvm:initrd_path=,kernel_path= \
--net 0:ip=A.B.C.4 \
- --net 1:ip=E.F.G.4 \
+ --net 1:link=br1,ip=E.F.G.4 \
qux.debian.org
}}}
{{{
gnt-instance shutdown qux.debian.org
gnt-instance modify \
- --net add:ip=E.F.G.4 \
+ --net add:link=br1,ip=E.F.G.4 \
qux.debian.org
gnt-instance startup qux.debian.org
}}}