mirror of
				https://github.com/apache/cloudstack.git
				synced 2025-10-26 08:42:29 +01:00 
			
		
		
		
	Checkpoint commit - work in progress.
Attempting to provide devcloud base box build process via veewee and puppet provisining via Vagrant.
This commit is contained in:
		
							parent
							
								
									2943dc22d7
								
							
						
					
					
						commit
						25e0cc9d75
					
				| @ -19,13 +19,15 @@ | ||||
| # under the License. | ||||
| 
 | ||||
| Vagrant::Config.run do |config| | ||||
|   config.vm.box = "devcloudbase-ubuntu-12-04-64bit" | ||||
|   config.vm.box = "devcloud"  | ||||
|   # TODO: Get a URL to host the base image | ||||
|   # config.vm.box_url = "http://domain.com/path/to/above.box" | ||||
|   config.vm.guest = :xen | ||||
|   config.ssh.username = "devcloud" | ||||
| 
 | ||||
|   # Uncomment this line to enable the console for debugging the  | ||||
|   # build process. | ||||
|   #config.vm.boot_mode = :gui | ||||
|   config.vm.boot_mode = :gui | ||||
| 
 | ||||
|   # Setup port forwarding | ||||
|   config.vm.forward_port 22, 2222 | ||||
| @ -46,27 +48,4 @@ Vagrant::Config.run do |config| | ||||
|     puppet.module_path    = "puppet-devcloudinitial" | ||||
|   end | ||||
| 
 | ||||
|   # Enable provisioning with Puppet stand alone.  Puppet manifests | ||||
|   # are contained in a directory path relative to this Vagrantfile. | ||||
|   # You will need to create the manifests directory and a manifest in | ||||
|   # the file my_box.pp in the manifests_path directory. | ||||
|   # | ||||
|   # An example Puppet manifest to provision the message of the day: | ||||
|   # | ||||
|   # # group { "puppet": | ||||
|   # #   ensure => "present", | ||||
|   # # } | ||||
|   # # | ||||
|   # # File { owner => 0, group => 0, mode => 0644 } | ||||
|   # # | ||||
|   # # file { '/etc/motd': | ||||
|   # #   content => "Welcome to your Vagrant-built virtual machine! | ||||
|   # #               Managed by Puppet.\n" | ||||
|   # # } | ||||
|   # | ||||
|   # config.vm.provision :puppet do |puppet| | ||||
|   #   puppet.manifests_path = "manifests" | ||||
|   #   puppet.manifest_file  = "my_box.pp" | ||||
|   # end | ||||
| 
 | ||||
| end | ||||
| @ -3,7 +3,7 @@ | ||||
| # For full documentation of the options in this file, see: | ||||
| #   info -f grub -n 'Simple configuration' | ||||
| 
 | ||||
| GRUB_DEFAULT=0 | ||||
| GRUB_DEFAULT=2 | ||||
| #GRUB_HIDDEN_TIMEOUT=0 | ||||
| GRUB_HIDDEN_TIMEOUT_QUIET=true | ||||
| GRUB_TIMEOUT=2 | ||||
| @ -4,12 +4,12 @@ class puppet-devcloudinitial { | ||||
|     ensure => latest, | ||||
|   } | ||||
| 
 | ||||
|   package { 'xen-hypervisor-4.1-amd64': | ||||
|   package { 'xen-hypervisor-4.1-i386': | ||||
|     ensure => latest, | ||||
|   } | ||||
| 
 | ||||
|   package { 'xcp-xapi': | ||||
|     require => Package['xen-hypervisor-4.1-amd64'], | ||||
|     require => Package['xen-hypervisor-4.1-i386'], | ||||
|     ensure  => latest, | ||||
|   } | ||||
| 
 | ||||
| @ -38,7 +38,7 @@ class puppet-devcloudinitial { | ||||
|   } | ||||
| 
 | ||||
|   file { '/etc/default/grub': | ||||
|     require => Package['xen-hypervisor-4.1-amd64'], | ||||
|     require => Package['xen-hypervisor-4.1-i386'], | ||||
|     ensure  => 'file', | ||||
|     source  => 'puppet:///modules/puppet-devcloudinitial/grub', | ||||
|     group   => '0', | ||||
| @ -53,7 +53,7 @@ class puppet-devcloudinitial { | ||||
|   } | ||||
| 
 | ||||
|   file { '/usr/share/qemu': | ||||
|     require => Package['xen-hypervisor-4.1-amd64'], | ||||
|     require => Package['xen-hypervisor-4.1-i386'], | ||||
|     ensure => 'directory', | ||||
|     group  => '0', | ||||
|     mode   => '755', | ||||
| @ -78,7 +78,7 @@ class puppet-devcloudinitial { | ||||
|   } | ||||
| 
 | ||||
|   file { '/etc/default/xen': | ||||
|     require => Package['xen-hypervisor-4.1-amd64'], | ||||
|     require => Package['xen-hypervisor-4.1-i386'], | ||||
|     ensure  => 'file', | ||||
|     source  => 'puppet:///modules/puppet-devcloudinitial/xen-defaults', | ||||
|     group   => '0', | ||||
							
								
								
									
										51
									
								
								tools/devcloud/devcloudbox/Vagrantfile
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								tools/devcloud/devcloudbox/Vagrantfile
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,51 @@ | ||||
| # -*- mode: ruby -*- | ||||
| # vi: set ft=ruby : | ||||
| 
 | ||||
| # Licensed to the Apache Software Foundation (ASF) under one | ||||
| # or more contributor license agreements.  See the NOTICE file | ||||
| # distributed with this work for additional information | ||||
| # regarding copyright ownership.  The ASF licenses this file | ||||
| # to you under the Apache License, Version 2.0 (the | ||||
| # "License"); you may not use this file except in compliance | ||||
| # with the License.  You may obtain a copy of the License at | ||||
| #  | ||||
| #   http://www.apache.org/licenses/LICENSE-2.0 | ||||
| #  | ||||
| # Unless required by applicable law or agreed to in writing, | ||||
| # software distributed under the License is distributed on an | ||||
| # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | ||||
| # KIND, either express or implied.  See the License for the | ||||
| # specific language governing permissions and limitations | ||||
| # under the License. | ||||
| 
 | ||||
| Vagrant::Config.run do |config| | ||||
|   config.vm.box = "devcloud"  | ||||
|   # TODO: Get a URL to host the base image | ||||
|   # config.vm.box_url = "http://domain.com/path/to/above.box" | ||||
|   config.vm.guest = :xen | ||||
|   config.ssh.username = "devcloud" | ||||
| 
 | ||||
|   # Uncomment this line to enable the console for debugging the  | ||||
|   # build process. | ||||
|   config.vm.boot_mode = :gui | ||||
| 
 | ||||
|   # Setup port forwarding | ||||
|   config.vm.forward_port 22, 2222 | ||||
|   config.vm.forward_port 8080, 8080 | ||||
|   config.vm.forward_port 8443, 8443 | ||||
|   config.vm.forward_port 5901, 5901 | ||||
|   config.vm.forward_port 8787, 8787 | ||||
|   config.vm.forward_port 8250, 8250 | ||||
| 
 | ||||
|   # Ensure the VM has the right virtual resources | ||||
|   #config.vm. | ||||
|        | ||||
| #  config.vm.provision :puppet do |puppet| | ||||
| #    puppet.manifests_path = "puppet-devcloud" | ||||
| #    puppet.manifest_file  = "init.pp" | ||||
| #    puppet.with_ssh       = true | ||||
| #    puppet.pp_path        = "/etc/puppet" | ||||
| #    puppet.module_path    = "puppet-devcloud" | ||||
| #  end | ||||
| 
 | ||||
| end | ||||
							
								
								
									
										8
									
								
								tools/devcloud/devcloudbox/puppet-devcloud/Modulefile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								tools/devcloud/devcloudbox/puppet-devcloud/Modulefile
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,8 @@ | ||||
| name    'puppet-devcloud' | ||||
| version '0.0.1' | ||||
| source '' | ||||
| author 'Apache Software Foundation' | ||||
| license 'Apache 2.0' | ||||
| summary 'CloudStack DevCloud configuration module' | ||||
| description 'Devcloud setup module.' | ||||
| project_page 'http://cloudstack.org' | ||||
| @ -0,0 +1,17 @@ | ||||
| # Generated by iptables-save v1.4.12 on Sat Jul 28 03:18:44 2012 | ||||
| *mangle | ||||
| :PREROUTING ACCEPT [397:23804] | ||||
| :INPUT ACCEPT [397:23804] | ||||
| :FORWARD ACCEPT [0:0] | ||||
| :OUTPUT ACCEPT [238:22820] | ||||
| :POSTROUTING ACCEPT [238:22820] | ||||
| -A POSTROUTING -p udp -m udp --dport 68 -j CHECKSUM --checksum-fill | ||||
| COMMIT | ||||
| # Completed on Sat Jul 28 03:18:44 2012 | ||||
| # Generated by iptables-save v1.4.12 on Sat Jul 28 03:18:44 2012 | ||||
| *filter | ||||
| :INPUT ACCEPT [453:27164] | ||||
| :FORWARD ACCEPT [0:0] | ||||
| :OUTPUT ACCEPT [273:26476] | ||||
| COMMIT | ||||
| # Completed on Sat Jul 28 03:18:44 2012 | ||||
							
								
								
									
										1
									
								
								tools/devcloud/devcloudbox/puppet-devcloud/init.pp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								tools/devcloud/devcloudbox/puppet-devcloud/init.pp
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1 @@ | ||||
| include puppet-devcloud | ||||
							
								
								
									
										32
									
								
								tools/devcloud/devcloudbox/puppet-devcloud/manifests/init.pp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								tools/devcloud/devcloudbox/puppet-devcloud/manifests/init.pp
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,32 @@ | ||||
| class puppet-devcloud { | ||||
| 
 | ||||
|   package { 'ebtables': | ||||
|     ensure => latest, | ||||
|   } | ||||
| 
 | ||||
|   service { 'ebtables': | ||||
|     require => Package['ebtables'], | ||||
|     ensure  => 'running', | ||||
|     enable  => 'true', | ||||
|   } | ||||
| 
 | ||||
|   package { 'iptables': | ||||
|     ensure => latest, | ||||
|   } | ||||
| 
 | ||||
|   file { '/etc/iptables.save': | ||||
|     require => Package['iptables'], | ||||
|     ensure  => 'file', | ||||
|     source  => 'puppet:///modules/puppet-devcloud/iptables.save', | ||||
|     group   => '0', | ||||
|     mode    => '644', | ||||
|     owner   => '0', | ||||
|   } | ||||
| 
 | ||||
|   exec { "mac=`ifconfig xenbr0 |grep HWaddr |awk '{print $5}'`; /sbin/ebtables -I FORWARD -d ! $mac -i eth0 -p IPV4 --ip-prot udp --ip-dport 67:68 -j DROP": | ||||
|     subscribe => Package['ebtables'], | ||||
|     refreshonly => true, | ||||
|     cwd       => '/', | ||||
|   } | ||||
| 
 | ||||
| } | ||||
| @ -1,12 +0,0 @@ | ||||
| To use: | ||||
| 
 | ||||
| Preconfiguration phase -  | ||||
| - [setup your box in vagrant and place the contents of tools/devcloud/puppet into the box's folder] | ||||
| - vagrant up; vagrant ssh | ||||
| - sudo bash | ||||
| - ln -s /vagrant/puppet-devcloudinitial /etc/puppet/modules/puppet-devcloudinitial | ||||
| - cd /vagrant | ||||
| - puppet apply --fsconfig fileserver.conf --debug --verbose -e "include puppet-devcloudinitial" | ||||
| 
 | ||||
| Postconfiguration phase -  | ||||
| TODO | ||||
| @ -1 +0,0 @@ | ||||
| Nothing in this directory yet, but it will contain the scripts and preconfiguration files to build the basic Ubuntu 12.04 server used in devcloud. | ||||
| @ -1,43 +0,0 @@ | ||||
| group { 'vagranttest': | ||||
|   ensure => 'present', | ||||
|   gid    => '5000', | ||||
| } | ||||
| 
 | ||||
| group { 'admin': | ||||
|   ensure => 'present', | ||||
|   gid    => '1002', | ||||
| } | ||||
| 
 | ||||
| user { 'vagranttest': | ||||
|   ensure  => 'present', | ||||
|   comment => 'vagrant,,,', | ||||
|   gid     => '5000', | ||||
|   groups  => ['adm', 'cdrom', 'dip', 'plugdev', 'lpadmin', 'sambashare', 'admin'], | ||||
|   home    => '/home/vagranttest', | ||||
|   shell   => '/bin/bash', | ||||
|   uid     => '5000', | ||||
| } | ||||
| 
 | ||||
| file { '/home/vagranttest': | ||||
|   ensure => 'directory', | ||||
|   group  => '1002', | ||||
|   mode   => '755', | ||||
|   owner  => '5000', | ||||
| } | ||||
| 
 | ||||
| file { '/home/vagranttest/.ssh': | ||||
|   ensure => 'directory', | ||||
|   group  => '1002', | ||||
|   mode   => '775', | ||||
|   owner  => '5000', | ||||
| } | ||||
| 
 | ||||
| $auth_key = "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ== vagrant insecure public key" | ||||
| 
 | ||||
| file { '/home/vagranttest/.ssh/authorized_keys': | ||||
|   ensure  => 'file', | ||||
|   content => $auth_key, | ||||
|   group   => '1002', | ||||
|   mode    => '664', | ||||
|   owner   => '5000', | ||||
| } | ||||
							
								
								
									
										42
									
								
								tools/devcloud/veewee/postinstall.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								tools/devcloud/veewee/postinstall.sh
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,42 @@ | ||||
| # Licensed to the Apache Software Foundation (ASF) under one | ||||
| # or more contributor license agreements.  See the NOTICE file | ||||
| # distributed with this work for additional information | ||||
| # regarding copyright ownership.  The ASF licenses this file | ||||
| # to you under the Apache License, Version 2.0 (the | ||||
| # "License"); you may not use this file except in compliance | ||||
| # with the License.  You may obtain a copy of the License at | ||||
| #  | ||||
| #   http://www.apache.org/licenses/LICENSE-2.0 | ||||
| #  | ||||
| # Unless required by applicable law or agreed to in writing, | ||||
| # software distributed under the License is distributed on an | ||||
| # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | ||||
| # KIND, either express or implied.  See the License for the | ||||
| # specific language governing permissions and limitations | ||||
| # under the License. | ||||
| 
 | ||||
| apt-get -y update | ||||
| apt-get -y upgrade | ||||
| apt-get -y install vim | ||||
| apt-get -y install ruby | ||||
| apt-get -y install rubygems | ||||
| apt-get -y install puppet | ||||
| apt-get clean | ||||
| 
 | ||||
| # Setup sudo to allow no-password sudo for "admin" | ||||
| groupadd -r admin | ||||
| usermod -a -G admin devcloud | ||||
| sed -i -e '/Defaults\s\+env_reset/a Defaults\texempt_group=admin' /etc/sudoers | ||||
| sed -i -e 's/%admin ALL=(ALL) ALL/%admin ALL=NOPASSWD:ALL/g' /etc/sudoers | ||||
| 
 | ||||
| mkdir /home/devcloud/.ssh | ||||
| chmod 700 /home/devcloud/.ssh | ||||
| cd /home/devcloud/.ssh | ||||
| wget --no-check-certificate 'https://raw.github.com/mitchellh/vagrant/master/keys/vagrant.pub' -O authorized_keys | ||||
| chmod 600 /home/devcloud/.ssh/authorized_keys | ||||
| chown -R devcloud /home/devcloud/.ssh | ||||
| 
 | ||||
| # Zero out the free space to save space in the final image: | ||||
| dd if=/dev/zero of=/EMPTY bs=1M | ||||
| rm -f /EMPTY | ||||
| 
 | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user