Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/infochimps-labs/ironfan-ci
Continuous Integration testing of ironfan clusters and chef cookbooks. Pass your system diagram into iron law,
https://github.com/infochimps-labs/ironfan-ci
Last synced: about 2 months ago
JSON representation
Continuous Integration testing of ironfan clusters and chef cookbooks. Pass your system diagram into iron law,
- Host: GitHub
- URL: https://github.com/infochimps-labs/ironfan-ci
- Owner: infochimps-labs
- License: apache-2.0
- Created: 2012-02-11T03:27:08.000Z (over 12 years ago)
- Default Branch: master
- Last Pushed: 2012-06-25T21:52:38.000Z (over 12 years ago)
- Last Synced: 2024-07-27T18:56:29.179Z (about 2 months ago)
- Language: Ruby
- Homepage: http://infochimps.com/
- Size: 158 KB
- Stars: 17
- Watchers: 19
- Forks: 5
- Open Issues: 0
-
Metadata Files:
- Readme: README-install.md
- License: LICENSE.md
Awesome Lists containing this project
README
### Install ironfan-homebase
Clone this repo, producing the directory we'll call `homebase` from now on. In fact, you may wish to rename it:
git clone https://github.com/infochimps-labs/ironfan-homebase
mv ironfan-homebase homebase
cd homebase
git submodule update --initNow follow the instructions
* from [the main directory README.md](README.md), for overall setup
* from [the knife/ folder README.md](knife/README.md), for chef config file setup
you're ready to go when you can `knife cluster list` and get formatted output:$ knife cluster list
+--------------------+---------------------------------------------------+
| cluster | path |
+--------------------+---------------------------------------------------+
| burninator | /cloud/clusters/burninator.rb |
| hadoop_demo | /cloud/clusters/hadoop_demo.rb |
... ...
| sandbox | /cloud/clusters/sandbox.rb |
+--------------------+---------------------------------------------------+## Installing the Vagrant box for the first time:
### Install Virtualbox
Download and install Virtualbox 4.x -- visit http://download.virtualbox.org/virtualbox/
### Install the gems
Run bundle install from your homebase directory
$ cd ironfan_homebase
$ bundle installYou should now be able to list all templates:
$ vagrant basebox templates
The following templates are available:
# ....
vagrant basebox define '' 'ubuntu-10.10-server-amd64'-netboot'
# ...
vagrant basebox define '' 'ubuntu-11.10-server-amd64-ruby192'### Build the new box
(_If you alread have the box in the vagrants/boxes folder, skip to 'Add the box'._)
Now move into the vagrants/ subdirectory and run
$ cd ironfan_homebase/vagrants
$ vagrant basebox build 'ironfan-natty'If you don't have the iso file it will download it for you. The ISO file is huge, and will probably take about 30 minutes to pull in.
The `basebox build` command will
* create a machine + disk according to the definition.rb
* Note: :os_type_id = The internal Name Virtualbox uses for that Distribution
* Mount the ISO File :iso_file
* Boot up the machine and wait for `:boot_time`
* Send the keystrokes in `:boot_cmd`_sequence
* Startup a webserver on `:kickstart_port` to wait for a request for the `:kickstart_file` (don't navigate to the file in your browser or the server will stop and the installer will not be able to find your preseed)
* Wait for ssh login to work with :ssh_user , :ssh_password
* Sudo execute the :postinstall_filesNext, export the vm to a .box file (producing `ironfan-natty.box`)
$ vagrant basebox export ironfan-natty
### Add the box as one of your boxes
Import the box into vagrant:
$ vagrant box add 'ironfan-natty' ironfan-natty.box
__________________________________________________________________________
## Launch a VM with vagrant
To use it:
knife cluster vm sandbox-simple --vagrant up
__________________________________________________________________________
## Once your chef server is up
* visit the webui (at http://33.33.33.20:4040 by default).
* log in with username 'admin' and password p@ssw0rd1 -- it will immediately prompt you to change it.
* [Create an admin=true client](http://33.33.33.20:4040/clients/new) for
yourself. If you have an opscode platform user account, make life easy on
yourself and use the same name. Check the box 'yes' for admin
* Copy-paste the private key into `{homebase}/knife/cocina/{yourname}.pem`
- Do so immediately -- it's your only chance to get the key!
- The first and last lines of the file should be the `-----BEGIN...` and
`-----END..` blocks.
- do a `chmod 600 {homebase}/knife/cocina/{yourname}.pem`
* [Create the environments](http://33.33.33.20:4040/environments) by runningknife environment from file environments/prod.rb
knife environment from file environments/dev.rb* go to ironfan_homebase/knife and make a copy of the credentials directory for the cocina world
cd ironfan_homebase/knife
cp -rp example cocina
cd cocina
git init ; git add .
git commit -m "New credentials univers for local VM chef server" .
subdirectories of `ironfan_homebase/knife` are .gitignored; don't check this directory into git.* upload your cookbooks!
cd /cloud
bundle install
export CHEF_USER=yourchefusername CHEF_ORGANIZATION=cocina CHEF_HOMEBASE=/cloud
rake roles & # NEVA GONNA GIVE YOU UP...
knife cookbook upload --all### Make the chef_server a client of itself
* edit the file `cocina/cloud.rb`, and set
chef_server_url "http://33.33.33.20:4000/"
* ssh to the chef_server vm,
vagrant ssh
copy the server's copy of the validator so the machine can also be a client,
and grab a copy for posteritycd /etc/chef
sudo ln -s validation.pem cocina-validator.pem
sudo cp validation.pem /cloud/knife/cocina/cocina-validator.pem
sudo mv dna.json /cloud/knife/cocina/dna/cocina-chef_server-0.json
sudo ln -s /cloud/knife/cocina/dna/cocina-chef_server-0.json dna.json
sudo ln -s /cloud/knife/cocina/client_keys client_keys# when those finish,
sudo chef-client