kameleon-builder 2.0.0 → 2.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (157) hide show
  1. data/.editorconfig +0 -0
  2. data/.env +63 -15
  3. data/.gitignore +1 -0
  4. data/README.rst +4 -2
  5. data/Vagrantfile +13 -52
  6. data/bin/kameleon +5 -0
  7. data/completion/_kameleon.zsh +18 -0
  8. data/completion/kameleon.bash +13 -0
  9. data/completion/kameleon.fish +10 -0
  10. data/contrib/polipo_env.sh +2 -0
  11. data/contrib/steps/export/save_as_g5k.yaml +63 -0
  12. data/contrib/steps/setup/add_to_sudoers.yaml +5 -0
  13. data/docs/Makefile +10 -6
  14. data/docs/README.md +17 -0
  15. data/docs/source/_static/kameleon-logo.png +0 -0
  16. data/docs/source/_static/kameleon-logo.xcf +0 -0
  17. data/docs/source/_static/kameleon-long.png +0 -0
  18. data/docs/source/aliases.rst +4 -2
  19. data/docs/source/checkpoint.rst +2 -0
  20. data/docs/source/commands.rst +4 -3
  21. data/docs/source/conf.py +15 -7
  22. data/docs/source/context.rst +7 -4
  23. data/docs/source/faq.rst +39 -1
  24. data/docs/source/getting_started.rst +227 -1
  25. data/docs/source/grid5000_tutorial.rst +110 -0
  26. data/docs/source/index.rst +7 -2
  27. data/docs/source/installation.rst +12 -4
  28. data/docs/source/persistent_cache.rst +34 -0
  29. data/docs/source/recipe.rst +23 -16
  30. data/docs/source/use_cases.rst +93 -0
  31. data/docs/source/workspace.rst +2 -0
  32. data/kameleon-builder.gemspec +7 -1
  33. data/lib/kameleon.rb +3 -6
  34. data/lib/kameleon/cli.rb +104 -50
  35. data/lib/kameleon/compat.rb +39 -0
  36. data/lib/kameleon/context.rb +43 -13
  37. data/lib/kameleon/engine.rb +118 -77
  38. data/lib/kameleon/environment.rb +3 -5
  39. data/lib/kameleon/error.rb +15 -9
  40. data/lib/kameleon/logger.rb +7 -4
  41. data/lib/kameleon/persistent_cache.rb +139 -0
  42. data/lib/kameleon/recipe.rb +200 -81
  43. data/lib/kameleon/shell.rb +51 -16
  44. data/omnibus/.gitignore +11 -0
  45. data/omnibus/.kitchen.yml +25 -0
  46. data/omnibus/Berksfile +9 -0
  47. data/omnibus/Berksfile.lock +25 -0
  48. data/omnibus/Gemfile +12 -0
  49. data/omnibus/README.md +94 -0
  50. data/omnibus/config/projects/kameleon.rb +23 -0
  51. data/omnibus/config/software/kameleon.rb +24 -0
  52. data/omnibus/config/software/polipo.rb +30 -0
  53. data/omnibus/config/software/ruby.rb +158 -0
  54. data/omnibus/files/mac_dmg/Resources/background.png +0 -0
  55. data/omnibus/files/mac_dmg/Resources/icon.png +0 -0
  56. data/omnibus/files/mac_pkg/Resources/background.png +0 -0
  57. data/omnibus/files/mac_pkg/Resources/license.html +1 -0
  58. data/omnibus/files/mac_pkg/Resources/welcome.html +9 -0
  59. data/omnibus/omnibus.rb +27 -0
  60. data/omnibus/package-scripts/kameleon/makeselfinst +27 -0
  61. data/omnibus/package-scripts/kameleon/postrm +9 -0
  62. data/templates/archlinux-desktop.yaml +25 -0
  63. data/templates/archlinux.yaml +106 -0
  64. data/templates/debian-testing.yaml +25 -0
  65. data/templates/debian7-desktop.yaml +25 -0
  66. data/templates/{debian-wheezy-docker.yaml → debian7-docker.yaml} +30 -16
  67. data/templates/debian7-g5k.yaml +97 -0
  68. data/templates/debian7-oar-dev.yaml +51 -0
  69. data/templates/debian7.yaml +128 -0
  70. data/templates/extend.erb +23 -0
  71. data/templates/fedora-rawhide.yaml +30 -0
  72. data/templates/fedora20-desktop.yaml +21 -0
  73. data/templates/fedora20.yaml +105 -0
  74. data/templates/{debian-wheezy-chroot.yaml → old-debian7.yaml} +51 -38
  75. data/templates/{aliases → steps/aliases}/defaults.yaml +37 -12
  76. data/templates/steps/bootstrap/archlinux/arch_bootstrap.yaml +219 -0
  77. data/templates/steps/bootstrap/archlinux/install_bootloader.yaml +46 -0
  78. data/templates/steps/bootstrap/archlinux/populate_disk.yaml +39 -0
  79. data/templates/steps/bootstrap/debian/debootstrap.yaml +18 -10
  80. data/templates/steps/bootstrap/debian/debootstrap_arm.yaml +31 -0
  81. data/templates/steps/bootstrap/fedora/liveos_bootstrap.yaml +123 -0
  82. data/templates/steps/bootstrap/g5k_reserv.yaml +70 -0
  83. data/templates/steps/bootstrap/initialize_disk_chroot.yaml +84 -0
  84. data/templates/steps/bootstrap/initialize_disk_qemu.yaml +72 -0
  85. data/templates/steps/bootstrap/install_bootloader.yaml +42 -0
  86. data/templates/steps/bootstrap/prepare_chroot.yaml +126 -0
  87. data/templates/steps/bootstrap/prepare_docker.yaml +19 -8
  88. data/templates/steps/bootstrap/prepare_qemu.yaml +47 -0
  89. data/templates/steps/bootstrap/start_chroot.yaml +11 -2
  90. data/templates/steps/bootstrap/start_docker.yaml +2 -2
  91. data/templates/steps/bootstrap/start_qemu.yaml +75 -0
  92. data/templates/steps/bootstrap/ubuntu/debootstrap.yaml +27 -0
  93. data/templates/steps/breakpoint.yaml +2 -0
  94. data/templates/{checkpoints → steps/checkpoints}/docker.yaml +0 -0
  95. data/templates/steps/checkpoints/qcow2.yaml +38 -0
  96. data/templates/steps/checkpoints/qemu.yaml +39 -0
  97. data/templates/steps/export/clean_appliance.yaml +7 -1
  98. data/templates/steps/export/compact_qcow_img.yaml +12 -0
  99. data/templates/steps/export/save_appliance.yaml +58 -0
  100. data/templates/steps/export/save_appliance_from_g5k.yaml +47 -0
  101. data/templates/steps/export/save_vagrant_box.yaml +29 -0
  102. data/templates/steps/setup/archlinux/configure_keyboard.yaml +9 -0
  103. data/templates/steps/setup/archlinux/configure_network.yaml +9 -0
  104. data/templates/steps/setup/archlinux/configure_ruby.yaml +7 -0
  105. data/templates/steps/setup/archlinux/configure_system.yaml +20 -0
  106. data/templates/steps/setup/archlinux/install_dev_tools.yaml +18 -0
  107. data/templates/steps/setup/archlinux/install_gnome.yaml +27 -0
  108. data/templates/steps/setup/archlinux/install_software.yaml +9 -0
  109. data/templates/steps/setup/archlinux/install_yaourt.yaml +29 -0
  110. data/templates/steps/setup/autologin.yaml +16 -0
  111. data/templates/steps/setup/create_group.yaml +12 -0
  112. data/templates/steps/setup/create_user.yaml +9 -10
  113. data/templates/steps/setup/debian/configure_apt.yaml +65 -0
  114. data/templates/steps/setup/debian/configure_kernel.yaml +18 -0
  115. data/templates/steps/setup/debian/{keyboard_config.yaml → configure_keyboard.yaml} +1 -1
  116. data/templates/steps/setup/debian/{network_config.yaml → configure_network.yaml} +0 -0
  117. data/templates/steps/setup/debian/{system_config.yaml → configure_system.yaml} +0 -0
  118. data/templates/steps/setup/debian/install_gnome.yaml +13 -0
  119. data/templates/steps/setup/debian/install_kde.yaml +13 -0
  120. data/templates/steps/setup/debian/install_software.yaml +2 -0
  121. data/templates/steps/setup/debian/oar/oar_debian_config_frontend.yaml +8 -0
  122. data/templates/steps/setup/debian/oar/oar_debian_config_node.yaml +5 -0
  123. data/templates/steps/setup/debian/oar/oar_debian_config_server.yaml +5 -0
  124. data/templates/steps/setup/debian/oar/oar_prereq_install.yaml +16 -0
  125. data/templates/steps/setup/debian/setup_vagrant_box.yaml +52 -0
  126. data/templates/steps/setup/debian/upgrade_system.yaml +15 -0
  127. data/templates/steps/setup/fedora/configure_network.yaml +30 -0
  128. data/templates/steps/setup/fedora/configure_system.yaml +59 -0
  129. data/templates/steps/setup/fedora/install_software.yaml +3 -0
  130. data/templates/steps/setup/fedora/update_system.yaml +10 -0
  131. data/templates/steps/setup/oar/oar_config_devel.yaml +21 -0
  132. data/templates/steps/setup/oar/oar_config_frontend.yaml +38 -0
  133. data/templates/steps/setup/oar/oar_config_node.yaml +4 -0
  134. data/templates/steps/setup/oar/oar_config_server.yaml +25 -0
  135. data/templates/steps/setup/oar/oar_config_system.yaml +34 -0
  136. data/templates/steps/setup/oar/oar_devel_prereq_install.yaml +5 -0
  137. data/templates/steps/setup/oar/oar_git_install.yaml +21 -0
  138. data/templates/steps/setup/ubuntu/configure_apt.yaml +67 -0
  139. data/templates/ubuntu-12.04-desktop.yaml +25 -0
  140. data/templates/ubuntu-12.04.yaml +128 -0
  141. data/templates/ubuntu-14.04-desktop.yaml +27 -0
  142. data/templates/ubuntu-14.04.yaml +25 -0
  143. data/templates/vagrant-debian7.yaml +31 -0
  144. data/version.txt +1 -1
  145. metadata +155 -28
  146. checksums.yaml +0 -7
  147. data/templates/checkpoints/qcow2.yaml +0 -44
  148. data/templates/fedora-docker.yaml +0 -96
  149. data/templates/steps/bootstrap/fedora/docker_bootstrap.yaml +0 -25
  150. data/templates/steps/bootstrap/fedora/yum_bootstrap.yaml +0 -22
  151. data/templates/steps/bootstrap/prepare_appliance_with_nbd.yaml +0 -93
  152. data/templates/steps/export/build_appliance_from_docker.yaml +0 -105
  153. data/templates/steps/export/save_appliance_from_nbd.yaml +0 -54
  154. data/templates/steps/setup/debian/kernel_install.yaml +0 -20
  155. data/templates/steps/setup/debian/software_install.yaml +0 -15
  156. data/templates/steps/setup/fedora/kernel_install.yaml +0 -27
  157. data/templates/steps/setup/fedora/software_install.yaml +0 -10
@@ -0,0 +1,29 @@
1
+ - save_as_vdi:
2
+ - check_cmd_out: VBoxManage
3
+ - exec_out: qemu-img convert -O vdi $$input $$output.vdi
4
+ - exec_out: |
5
+ echo "Compact the vdi disk"
6
+ VBoxManage modifyhd $$output.vdi --compact 2>&1
7
+ - exec_out: echo "Saved vdi appliance to $(pwd)/$$output.vdi"
8
+
9
+ - create_virtualbox_vm:
10
+ - exec_out: |
11
+ BOX_NAME="$${kameleon_recipe_name}_$${kameleon_short_uuid}"
12
+ - exec_out: VBoxManage createvm --name "$BOX_NAME" --register
13
+ - exec_out: VBoxManage modifyvm "$BOX_NAME" --ostype $$os_type
14
+ - exec_out: VBoxManage modifyvm "$BOX_NAME" --memory $$memory
15
+ - exec_out: VBoxManage modifyvm "$BOX_NAME" --acpi on
16
+ - exec_out: VBoxManage modifyvm "$BOX_NAME" --nic1 nat
17
+ - exec_out: VBoxManage modifyvm "$BOX_NAME" --nictype1 virtio
18
+ - exec_out: VBoxManage storagectl "$BOX_NAME" --name "IDE Controller" --add ide
19
+ - exec_out: |
20
+ VBoxManage storageattach "$BOX_NAME" --storagectl "IDE Controller" \
21
+ --port 0 --device 0 --type hdd \
22
+ --medium $$output.vdi
23
+ - on_export_clean:
24
+ - exec_out: VBoxManage unregistervm --delete "$BOX_NAME"
25
+
26
+ - export_virtualbox_vm:
27
+ - exec_out: echo "Create vagrant package"
28
+ - exec_out: rm -f $$output.box
29
+ - exec_out: vagrant package --base $BOX_NAME --output $$output.box
@@ -0,0 +1,9 @@
1
+ # Keyboard configuration for Archlinux
2
+ #
3
+ # This should work on every systemd powered system
4
+
5
+ - set_keyboard_layout:
6
+ - write_in:
7
+ - /etc/vconsole.conf
8
+ - |
9
+ KEYMAP=$$layout
@@ -0,0 +1,9 @@
1
+ # Network config for Archlinux
2
+ #
3
+ # This should work for every systemd powered system
4
+
5
+ - set_hostname:
6
+ - exec_in: echo $$hostname > /etc/hostname
7
+
8
+ - set_interface:
9
+ - exec_in: systemctl enable dhcpcd.service
@@ -0,0 +1,7 @@
1
+ # Ruby configuration for Archlinux
2
+ #
3
+ # Set no document by default and install system wide
4
+ - ruby_install:
5
+ - exec_in: pacman -S ruby --noconfirm
6
+ - do_ruby_config:
7
+ - exec_in: "sed -i 's/^gem: --user-install/gem: --no-document/' /etc/gemrc"
@@ -0,0 +1,20 @@
1
+ # System configuration for Archlinux
2
+ #
3
+ # This will set the locals and the timezone
4
+
5
+ - set_locales:
6
+ # uncomment the locales
7
+ - exec_in: |
8
+ test ! -f /etc/locale.gen || \
9
+ (echo $$locales | tr ' ' '\n' | xargs -I {} sed -i 's/^#{}/{}/' /etc/locale.gen)
10
+ # generate the locales
11
+ - exec_in: locale-gen
12
+ # save and apply
13
+ - exec_in: echo LANG=$$lang > /etc/locale.conf
14
+ - exec_in: export LANG=$$lang
15
+
16
+ - set_timezone:
17
+ - exec_in: ln -s /usr/share/zoneinfo/$$timezone /etc/localtime
18
+
19
+ - set_wheel_sudo:
20
+ - exec_in: echo "%wheel ALL=(ALL) ALL" >> /etc/sudoers
@@ -0,0 +1,18 @@
1
+ # Dev Tools install
2
+ # This step is installing all the tools a developer might needs
3
+
4
+ - basic_dev_tools:
5
+ - exec_in: pacman -Sy --noconfirm base-devel wget git meld
6
+
7
+ - libvirt_with_qemu:
8
+ # WARNING: if you have some problems with libvirt/qemu rights you can fix it
9
+ # mannualy. See https://wiki.archlinux.org/index.php/libvirt#Configuration
10
+ - exec_in: pacman -Sy --noconfirm qemu libvirt dnsmasq dmidecode virt-manager
11
+ - exec_in: echo "Enable libvirt deamon"
12
+ - exec_in: ln -s '/usr/lib/systemd/system/libvirtd.service' '/etc/systemd/system/multi-user.target.wants/libvirtd.service'
13
+ # The default libvirt network is conflicting with the host libvirt network so
14
+ # change the defaults
15
+ - exec_in: sed -i "s/192.168.122/192.168.123/g" /etc/libvirt/qemu/networks/default.xml
16
+
17
+ - docker_lxc:
18
+ - exec_in: pacman -Sy --noconfirm docker lxc
@@ -0,0 +1,27 @@
1
+ # Desktop installation on Archlinux
2
+ #
3
+ # Install and setup a fully working Gnome configuration
4
+ - extra_packages: ""
5
+
6
+ - install_packages:
7
+ - exec_in: pacman -Sy --noconfirm gnome xorg xorg-fonts-type1 $$extra_packages
8
+
9
+ - enable_services:
10
+ - exec_in: systemctl enable gdm.service
11
+ # disable dhcpcd to avoid conflic with NetworkManager
12
+ - exec_in: systemctl disable dhcpcd.service
13
+ - exec_in: systemctl enable NetworkManager
14
+
15
+ - X11_config:
16
+ # keyboard config
17
+ - write_in:
18
+ - /etc/X11/xorg.conf.d/10-keyboard.conf
19
+ - |
20
+ Section "InputClass"
21
+ Identifier "system-keyboard"
22
+ MatchIsKeyboard "on"
23
+ Option "XkbLayout" "$$keyboard_layout"
24
+ Option "XkbModel" "pc104"
25
+ EndSection
26
+ # font config
27
+ - exec_in: ln -s /etc/fonts/conf.avail/70-no-bitmaps.conf /etc/fonts/conf.d/
@@ -0,0 +1,9 @@
1
+ # Software install for archlinux
2
+ #
3
+ # It use pacman tool to install given packages
4
+
5
+ - do_install:
6
+ - exec_in: pacman --noconfirm --arch $$arch -Suy --force $$packages
7
+ - on_clean:
8
+ - exec_in: echo "y" | pacman -Scc
9
+
@@ -0,0 +1,29 @@
1
+ # Yaourt install for Archlinux
2
+ #
3
+ # Installing the pacman overlay that handles AUR packages
4
+
5
+ - add_repository:
6
+ - exec_in: |
7
+ cat >> /etc/pacman.conf <<'EOF'
8
+ [archlinuxfr]
9
+ SigLevel = Never
10
+ Server = http://repo.archlinux.fr/$arch
11
+ EOF
12
+
13
+ - do_install:
14
+ - exec_in: pacman -Sy yaourt --noconfirm
15
+
16
+ #- manual_install:
17
+ # # script taken from http://archlinux.fr/yaourt-en
18
+ # - exec_in: |
19
+ # curl -O https://aur.archlinux.org/packages/pa/package-query/package-query.tar.gz
20
+ # tar zxvf package-query.tar.gz
21
+ # cd package-query
22
+ # makepkg -si --asroot --noconfirm
23
+ # cd ..
24
+ # curl -O https://aur.archlinux.org/packages/ya/yaourt/yaourt.tar.gz
25
+ # tar zxvf yaourt.tar.gz
26
+ # cd yaourt
27
+ # makepkg -si --asroot --noconfirm
28
+ # cd ..
29
+
@@ -0,0 +1,16 @@
1
+ # # Autologin
2
+ - set_autologin:
3
+ - exec_in: |
4
+ # check SysV init
5
+ if [ -f '/etc/inittab' ]
6
+ then
7
+ perl -pi -e 's;/sbin/getty.*tty1;/bin/login -f $$user_name tty1 </dev/tty1 >/dev/tty1 2>&1;' /etc/inittab
8
+ else
9
+ # use systemd
10
+ mkdir -p /etc/systemd/system/getty@tty1.service.d
11
+ cat > /etc/systemd/system/getty@tty1.service.d/autologin.conf <<< '
12
+ [Service]
13
+ ExecStart=
14
+ ExecStart=-/usr/bin/agetty --autologin <username> --noclear %I 38400 linux
15
+ '
16
+ fi
@@ -0,0 +1,12 @@
1
+ # Create Group
2
+
3
+ - create_group:
4
+ - exec_in: |
5
+ # check if a group is present before adding it
6
+ if [ $(egrep -i "^$$name" /etc/group) ]
7
+ then
8
+ echo "WARNING: the group '$$name' is alredy present"
9
+ else
10
+ groupadd $$name
11
+ fi
12
+
@@ -1,12 +1,11 @@
1
- # # Create User
2
- - create_group:
3
- - exec_in: groupadd $$group
1
+ # Create User
2
+
3
+ - shell: /bin/bash
4
+
4
5
  - add_user:
5
- # use the create_passwd.py script to generate the crypted password
6
- - exec_in: useradd -m -g $$group $$name -s /bin/bash
6
+ - exec_in: useradd -m $$name -s $$shell
7
7
  - exec_in: echo -n '$$name:$$password' | chpasswd
8
- - add_group_to_sudoers:
9
- - append_in:
10
- - /etc/sudoers
11
- - |
12
- %admin ALL=(ALL:ALL) ALL
8
+
9
+ - add_to_groups:
10
+ - exec_in: |
11
+ usermod -G "$(echo $$groups | tr ' ' ',')" $$name
@@ -0,0 +1,65 @@
1
+ # Software Install
2
+ - enable_contrib: true
3
+ - enable_nonfree: true
4
+ - install_recommends: false
5
+
6
+ - configure_apt_to_use_less_disk_space:
7
+ - write_in:
8
+ - /etc/apt/apt.conf.d/02compress_indexes
9
+ - |
10
+ Acquire::GzipIndexes "true";
11
+ Acquire::CompressionTypes::Order:: "gz";
12
+ - exec_in: |
13
+ if [ $$install_recommends = false ]; then
14
+ echo 'APT::Install-Recommends "0";' >> /etc/apt/apt.conf.d/01norecommend
15
+ echo 'APT::Install-Suggests "0";' >> /etc/apt/apt.conf.d/01norecommend
16
+ fi
17
+ - write_in:
18
+ - /etc/apt/apt.conf.d/02nocache
19
+ - |
20
+ Dir::Cache {
21
+ srcpkgcache "";
22
+ pkgcache "";
23
+ }
24
+ - write_in:
25
+ - /etc/dpkg/dpkg.cfg.d/01_nodoc
26
+ - |
27
+ path-exclude /usr/share/doc/*
28
+ # we need to keep copyright files for legal reasons
29
+ path-include /usr/share/doc/*/copyright
30
+ path-exclude /usr/share/man/*
31
+ path-exclude /usr/share/groff/*
32
+ path-exclude /usr/share/info/*
33
+ # lintian stuff is small, but really unnecessary
34
+ path-exclude /usr/share/lintian/*
35
+ path-exclude /usr/share/linda/*
36
+ path-exclude /usr/share/locale/*
37
+ path-include /usr/share/locale/en*
38
+ - write_in:
39
+ - /etc/locale.nopurge
40
+ - |
41
+ MANDELETE
42
+ DONTBOTHERNEWLOCALE
43
+ SHOWFREEDSPACE
44
+ #QUICKNDIRTYCALC
45
+ #VERBOSE
46
+
47
+ - add_contribs_and_nonfree_sources:
48
+ - exec_in: |
49
+ if [ $$enable_contrib = true ]; then
50
+ REPO_CONTRIB="contrib"
51
+ fi
52
+ - exec_in: |
53
+ if [ $$enable_nonfree = true ]; then
54
+ REPO_NONFREE="non-free"
55
+ fi
56
+ - exec_in: perl -pi -e "s/main$/main $REPO_CONTRIB $REPO_NONFREE/" /etc/apt/sources.list
57
+
58
+ - update_repositories:
59
+ - exec_in: apt-get -y --force-yes update
60
+ - exec_in: apt-get -y --force-yes install localepurge
61
+ - on_setup_clean:
62
+ - exec_in: apt-get -y --force-yes autoclean
63
+ - exec_in: apt-get -y --force-yes clean
64
+ - exec_in: apt-get -y --force-yes autoremove
65
+ - exec_in: localepurge
@@ -0,0 +1,18 @@
1
+ - configure_kernel:
2
+ - write_in:
3
+ - /etc/kernel-img.conf
4
+ - |
5
+ do_symlinks = yes
6
+ relative_links = yes
7
+ do_bootloader = yes
8
+ do_bootfloppy = no
9
+ do_initrd = yes
10
+ link_in_boot = no
11
+
12
+ - update_initramfs:
13
+ - exec_in: update-initramfs -u
14
+
15
+ - reconfigure_extlinux:
16
+ - exec_in: apt-get -y --force-yes --install-suggests --reinstall install extlinux
17
+ - exec_in: extlinux --install /boot/extlinux 2>&1
18
+ - exec_in: extlinux-update 2>&1
@@ -7,4 +7,4 @@
7
7
  XKBLAYOUT="$$layout"
8
8
  XKBVARIANT=""
9
9
  XKBOPTIONS=""
10
- - exec_in: apt-get -y --force-yes install console-setup console-tools console-data 2>&1
10
+ - exec_in: apt-get -y --force-yes install console-setup console-data 2>&1
@@ -0,0 +1,13 @@
1
+ # Desktop installation on Debian
2
+ #
3
+ # Install and setup a fully working Gnome configuration
4
+ - extra_packages: ""
5
+
6
+ - install_aptitude:
7
+ - exec_in: apt-get -y --force-yes install aptitude 2>&1
8
+
9
+ - gnome_desktop_task:
10
+ - exec_in: aptitude -q --without-recommends -o APT::Install-Recommends=no -y install ~t^desktop$ ~t^gnome-desktop$
11
+
12
+ - install_extra_packages:
13
+ - exec_in: apt-get -y --force-yes install gnome-core $$extra_packages 2>&1
@@ -0,0 +1,13 @@
1
+ # Desktop installation on Debian
2
+ #
3
+ # Install and setup a fully working Gnome configuration
4
+ - extra_packages: ""
5
+
6
+ - install_aptitude:
7
+ - exec_in: apt-get -y --force-yes install aptitude 2>&1
8
+
9
+ - gnome_desktop_task:
10
+ - exec_in: aptitude -q --without-recommends -o APT::Install-Recommends=no -y install ~t^desktop$ ~t^gkde-desktop$
11
+
12
+ - install_extra_packages:
13
+ - exec_in: apt-get -y --force-yes install kde-standard $$extra_packages 2>&1
@@ -0,0 +1,2 @@
1
+ - core_packages:
2
+ - exec_in: apt-get -y --force-yes install $$packages 2>&1
@@ -0,0 +1,8 @@
1
+ - configure_apache2:
2
+ - exec_in: a2enmod ident
3
+ - exec_in: a2enmod headers
4
+ - exec_in: a2enmod rewrite
5
+
6
+ - configure_basic_auth_api-priv:
7
+ - exec_in: ln -s /etc/oar/apache2/oar-restful-api-priv.conf /etc/apache2/conf.d/oar-restful-api-priv.conf
8
+
@@ -0,0 +1,5 @@
1
+ - configure_initd:
2
+ - exec_in: cp $$oar_prefix_install/share/oar/oar-node/init.d/oar-node /etc/init.d/
3
+ - exec_in: cp $$oar_prefix_install/share/oar/oar-node/default/oar-node /etc/default/
4
+ - exec_in: update-rc.d oar-node defaults
5
+
@@ -0,0 +1,5 @@
1
+ - configure_initd:
2
+ - exec_in: cp $$oar_prefix_install/share/oar/oar-server/init.d/oar-server /etc/init.d/
3
+ - exec_in: cp $$oar_prefix_install/share/oar/oar-server/default/oar-server /etc/default/
4
+ - exec_in: update-rc.d oar-server defaults
5
+
@@ -0,0 +1,16 @@
1
+ # OAR prereq install
2
+ - packages: >
3
+ vim less bzip2 openssh-server rsync gnupg locales debian-keyring ruby1.8
4
+ libyaml-perl libjson-perl libdbi-perl taktuk oidentd console-tools
5
+ mingetty curl git-core make python-docutils
6
+ libjson-perl libwww-perl ntp libgd-ruby1.8 perl libdbi-perl
7
+ libtie-ixhash-perl libappconfig-perl libsort-naturally-perl
8
+ libsort-versions-perl openjdk-6-jre libcgi-fast-perl
9
+ libpostgresql-ocaml libpostgresql-ocaml-dev ocaml-findlib ocaml-nox
10
+ libounit-ocaml-dev librestclient-ruby1.8 librspec-ruby1.8 postgresql
11
+ libdbd-pg-ruby1.8 libpostgresql-ocaml-dev libdbd-pg-ruby1.8 rubygems1.8
12
+ libmysql-ocaml-dev libdbd-pg-perl libjson-ruby1.8 ruby-switch
13
+ - req_packages:
14
+ - exec_in: apt-get -y --force-yes install $$packages
15
+ - switch_to_ruby_18:
16
+ - exec_in: ruby-switch --set ruby1.8
@@ -0,0 +1,52 @@
1
+ - enable_passwordless_sudo:
2
+ - exec_in: |
3
+ sed -i.bkp -e \
4
+ 's/%sudo\s\+ALL=(ALL\(:ALL\)\?)\s\+ALL/%sudo ALL=NOPASSWD:ALL/g' \
5
+ /etc/sudoers
6
+
7
+ - set_root_password:
8
+ - exec_in: echo -n 'root:$$user_name' | chpasswd
9
+
10
+ - install_vbox_guest_additions:
11
+ - exec_in: echo "VirtualBox Guest Additions..."
12
+ - exec_in: wget http://download.virtualbox.org/virtualbox/4.3.8/VBoxGuestAdditions_4.3.8.iso
13
+ - exec_in: sudo mkdir /media/VBoxGuestAdditions
14
+ - exec_in: sudo mount -o loop,ro VBoxGuestAdditions_4.3.8.iso /media/VBoxGuestAdditions
15
+ - exec_in: sudo sh /media/VBoxGuestAdditions/VBoxLinuxAdditions.run --nox11
16
+ - exec_in: rm VBoxGuestAdditions_4.3.8.iso
17
+ - exec_in: sudo umount /media/VBoxGuestAdditions
18
+ - exec_in: sudo rmdir /media/VBoxGuestAdditions
19
+
20
+ - install_puppet:
21
+ - exec_in: echo "Installing puppet..."
22
+ - exec_in: wget -q http://apt.puppetlabs.com/puppetlabs-release-stable.deb -O /tmp/puppetlabs-release-stable.deb
23
+ - exec_in: dpkg -i "/tmp/puppetlabs-release-stable.deb"
24
+ - exec_in: apt-get update
25
+ - exec_in: apt-get install puppet -y --force-yes
26
+ - exec_in: rm -f /tmp/puppetlabs-release-stable.deb
27
+
28
+ - install_chef:
29
+ - exec_in: curl -L https://www.opscode.com/chef/install.sh -k | bash
30
+
31
+ - copy_insecure_sshkey:
32
+ - exec_in: mkdir -p /home/$$user_name/.ssh/
33
+ - exec_in: chmod 0755 /home/$$user_name/.ssh/
34
+ - exec_in: echo -e 'y\n' | ssh-keygen -q -t dsa -f /home/$$user_name/.ssh/id_rsa -N ''
35
+ - write_in:
36
+ - /home/$$user_name/.ssh/authorized_keys
37
+ - |
38
+ ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ== $$user_name insecure public key
39
+
40
+ - config_ssh:
41
+ - exec_in: echo "UseDNS no" >> /etc/ssh/sshd_config
42
+ - write_in:
43
+ - /home/$$user_name/.ssh/config
44
+ - |
45
+ Host *
46
+ ForwardX11 no
47
+ StrictHostKeyChecking no
48
+ PasswordAuthentication no
49
+ AddressFamily inet
50
+ - exec_in: chmod 0600 /home/$$user_name/.ssh/config
51
+ - exec_in: rsync -ah /home/$$user_name/.ssh/ /root/.ssh/
52
+ - exec_in: chown "$$user_name:" -R /home/$$user_name