kameleon-builder 2.0.0 → 2.1.0

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 (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