toft 0.0.3 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. data/Gemfile.lock +6 -1
  2. data/Rakefile +93 -4
  3. data/features/checker.feature +2 -2
  4. data/features/chef.feature +23 -5
  5. data/features/command.feature +4 -3
  6. data/features/node.feature +21 -6
  7. data/features/step_definitions/chef.rb +11 -3
  8. data/features/step_definitions/command.rb +1 -3
  9. data/features/step_definitions/node.rb +19 -3
  10. data/features/support/env.rb +6 -3
  11. data/fixtures/chef/attributes.json +9 -0
  12. data/lib/toft/chef/chef_attributes.rb +2 -2
  13. data/lib/toft/chef/chef_runner.rb +17 -4
  14. data/lib/toft/node.rb +64 -20
  15. data/lib/toft/node_controller.rb +2 -2
  16. data/lib/toft/version.rb +1 -1
  17. data/lib/toft.rb +5 -2
  18. data/scripts/bin/centos/lxc-prepare-host +175 -0
  19. data/scripts/{ubuntu/bin → bin/share}/install-chef-ubuntu.sh +0 -0
  20. data/scripts/{ubuntu/bin → bin/share}/install-rvm.sh +0 -0
  21. data/scripts/{ubuntu/bin → bin/share}/lxc-create-centos-image +6 -5
  22. data/scripts/{ubuntu/bin → bin/ubuntu}/lxc-create-ubuntu-image +3 -3
  23. data/scripts/bin/ubuntu/lxc-prepare-host +190 -0
  24. data/scripts/cookbooks/lxc/recipes/default.rb +8 -14
  25. data/scripts/{ubuntu/lxc-templates → cookbooks/lxc/templates/default}/lxc-centos-6 +7 -3
  26. data/scripts/cookbooks/lxc/templates/default/{lxc-lucid-chef → lxc-lucid} +2 -2
  27. data/scripts/cookbooks/lxc/templates/default/{lxc-natty-chef → lxc-natty} +2 -2
  28. data/scripts/lxc-templates/files/rc.local +38 -0
  29. data/scripts/lxc-templates/lxc-centos-6 +279 -0
  30. data/scripts/{ubuntu/lxc-templates → lxc-templates}/lxc-lucid +3 -12
  31. data/scripts/{ubuntu/lxc-templates → lxc-templates}/lxc-natty +51 -61
  32. data/spec/fixtures/illegal_syntax.json +1 -0
  33. data/spec/spec_helper.rb +3 -1
  34. data/spec/tuft/chef_attributes_spec.rb +6 -0
  35. data/spec/tuft/chef_runner_spec.rb +34 -0
  36. metadata +55 -21
  37. data/scripts/centos/bin/lxc-prepare-host +0 -39
  38. data/scripts/cookbooks/lxc/files/default/lxc-create-ubuntu-image +0 -75
  39. data/scripts/ubuntu/bin/lxc-prepare-host +0 -24
@@ -1,39 +0,0 @@
1
- #!/bin/bash
2
-
3
- username=`id -nu`
4
- if [ ! "$username" = "root" ]; then
5
- echo "This command has to be run as root!"
6
- exit 1
7
- fi
8
-
9
- # intsall lxc
10
- if [[ ! -f /usr/bin/lxc-ls ]]; then
11
- (cd /tmp && \
12
- wget http://lxc.sourceforge.net/download/lxc/lxc-0.7.4.tar.gz && \
13
- tar zxf lxc-0.7.4.tar.gz && \
14
- cd lxc-0.7.4 && \
15
- ./configure --prefix=/usr && \
16
- make && \
17
- make install)
18
- fi
19
-
20
- yum install bridge-utils
21
-
22
- if [[ ! `ip link ls dev br0` ]]; then
23
- brctl addbr br0
24
- ifconfig br0 192.168.20.1 netmask 255.255.255.0 up
25
- iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
26
- sysctl -w net.ipv4.ip_forward=1
27
- fi
28
-
29
- if [[ ! -d /cgroup ]]; then
30
- mkdir -p /cgroup
31
- fi
32
-
33
- if [[ ! `mount | grep cgroup` ]]; then
34
- mount none -t cgroup /cgroup
35
- fi
36
-
37
- # allow people to ping this machine
38
- iptables -D FORWARD -j REJECT --reject-with icmp-host-prohibited
39
- iptables -D INPUT -j REJECT --reject-with icmp-host-prohibited
@@ -1,75 +0,0 @@
1
- #!/bin/bash
2
-
3
- if [ $# -eq 0 ]; then
4
- echo "Usage: `basename $0` <ubuntu-suite>"
5
- exit 1
6
- fi
7
-
8
- username=`id -nu`
9
- if [ ! "$username" = "root" ]; then
10
- echo "This command has to be run as root!"
11
- exit 1
12
- fi
13
-
14
- cache="/var/cache/lxc/ubuntu"
15
- suite=$1
16
-
17
- arch=$(arch)
18
- if [ "$arch" == "x86_64" ]; then
19
- arch=amd64
20
- fi
21
-
22
- if [ "$arch" == "i686" ]; then
23
- arch=i386
24
- fi
25
-
26
- if [ -e "$cache/$suite-$arch.tar.gz" ]; then
27
- echo "Cache rootfs already exists!"
28
- exit 0
29
- fi
30
-
31
- lucid_packages=dialog,apt,apt-utils,resolvconf,iproute,inetutils-ping,dhcp3-client,ssh,lsb-release,wget,gpgv,gnupg,sudo,ruby,rubygems1.8,ruby-dev,libopenssl-ruby,build-essential,wget,ssl-cert
32
- natty_packages=dialog,apt,apt-utils,resolvconf,iproute,inetutils-ping,isc-dhcp-client,isc-dhcp-common,ssh,lsb-release,gnupg,netbase,lxcguest,sudo,ruby,rubygems1.8,ruby-dev,libruby,build-essential,wget,ssl-cert
33
- # check the mini ubuntu was not already downloaded
34
- rm -rf "$cache/$suite-$arch"
35
- mkdir -p "$cache/$suite-$arch"
36
- if [ $? -ne 0 ]; then
37
- echo "Failed to create '$cache/$suite-$arch' directory"
38
- exit 1
39
- fi
40
-
41
- # download a mini ubuntu into a cache
42
- echo "Downloading ubuntu minimal ..."
43
- eval "packages=\$${suite}_packages"
44
- cmd="debootstrap --verbose --variant=minbase --components=main,universe --arch=$arch --include=$packages $suite $cache/$suite-$arch"
45
- echo $cmd
46
- eval $cmd
47
- if [ $? -ne 0 ]; then
48
- echo "Failed to download the rootfs, aborting."
49
- exit 1
50
- fi
51
-
52
- echo "Download complete."
53
-
54
- # install chef
55
- cat <<EOF > "$cache/$suite-$arch/tmp/install-chef-ubuntu.sh"
56
- echo "deb http://apt.opscode.com/ $suite-0.10 main" | tee /etc/apt/sources.list.d/opscode.list
57
-
58
- mkdir -p /etc/apt/trusted.gpg.d
59
- gpg --keyserver keys.gnupg.net --recv-keys 83EF826A
60
- gpg --export packages@opscode.com | tee /etc/apt/trusted.gpg.d/opscode-keyring.gpg > /dev/null
61
- apt-get update
62
- apt-get install ucf --force-yes -y
63
- yes | apt-get install opscode-keyring --force-yes -y # permanent upgradeable keyring
64
-
65
- export DEBIAN_FRONTEND=noninteractive
66
- apt-get install chef --force-yes -qy
67
- EOF
68
- chroot "$cache/$suite-$arch" bash /tmp/install-chef-ubuntu.sh
69
-
70
- # compress root image
71
- echo "Packaging rootfs ..."
72
- (cd $cache/$suite-$arch && tar zcf $suite-$arch.tar.gz .)
73
- mv $cache/$suite-$arch/$suite-$arch.tar.gz $cache
74
-
75
-
@@ -1,24 +0,0 @@
1
- #!/bin/bash
2
-
3
- username=`id -nu`
4
- if [ ! "$username" = "root" ]; then
5
- echo "This command has to be run as root!"
6
- exit 1
7
- fi
8
-
9
- apt-get install -y lxc bridge-utils debootstrap
10
-
11
- if [[ ! `ip link ls dev br0` ]]; then
12
- brctl addbr br0
13
- ifconfig br0 192.168.20.1 netmask 255.255.255.0 up
14
- iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
15
- sysctl -w net.ipv4.ip_forward=1
16
- fi
17
-
18
- if [[ ! -d /cgroup ]]; then
19
- mkdir -p /cgroup
20
- fi
21
-
22
- if [[ ! `mount | grep cgroup` ]]; then
23
- mount none -t cgroup /cgroup
24
- fi