keep the os closer to nixos and move custom bits into the sdk (at least for now)

This commit is contained in:
chrisfarms 2014-01-31 16:38:54 +00:00
parent 8dcbbfe1f4
commit e3e592ca9c
5 changed files with 25 additions and 34 deletions

View file

@ -1,10 +1,10 @@
Cycle OS build scripts
OS Image build scripts
======================
Cycle's OS is based on [NixOS](http://nixos.org), a linux distribution with a purely functional
package manager.
These scripts build .box images that can be used by [vagrant](http://vagrantup.com), and ISO images that can be installed on bare metal.
These scripts build .box images that can be used by [vagrant](http://vagrantup.com) for development, and other images suitable for production.
See [CycleSDK](https://bitbucket.org/oxdi/cycle-sdk) for the complete development environment (which makes use of the images generated here).
@ -16,31 +16,27 @@ First install [packer](http://packer.io) and [virtualbox](https://www.virtualbox
Then:
```
```bash
packer build template.json
```
The .box image is now ready to go. Install it into Vagrant via:
```
vagrant box add cycle64 cycle64-virtualbox.box
```
Updating the public box image
-----------------------------
`s3put` is handy command line wrapper for copying files to Amazon S3, it's part of the [boto](https://github.com/boto/boto) library.
`s3put` is handy tool for copying files to Amazon S3, it's part of the [boto](https://github.com/boto/boto) library.
Install boto:
```
```bash
pip install boto
```
Push the .box image to S3 via s3put
```
s3put -a $AWS_ID -s $AWS_KEY -b oxdi -g public-read --prefix `pwd` cycle64-virtualbox.box
```bash
s3put -a $AWS_ID -s $AWS_KEY -b oxdi -g public-read --prefix `pwd` cycle-xx.xx-x86_64-virtualbox.box
```
The box will then be available at http://amazonaws.com/oxdi/cycle64-virtualbox.box

View file

@ -1,7 +1,10 @@
{ config, pkgs, ... }:
{
imports = [ ./hardware-configuration.nix ];
imports = [
./hardware-configuration.nix
./sdk.nix
];
# Use the GRUB 2 boot loader.
boot.loader.grub.enable = true;
@ -14,7 +17,7 @@
# Enable the OpenSSH daemon.
services.openssh.enable = true;
# Virtualbox guess
# Virtualbox guest
services.virtualbox.enable = true;
# Enable DBus
@ -35,8 +38,6 @@
# Default packages
environment.systemPackages = with pkgs; [
git
subversion
vim
];
# Creates a "vagrant" users with password-less sudo access

5
nixos/sdk.nix Normal file
View file

@ -0,0 +1,5 @@
{ config, pkgs, ... }:
{
# add sdk configure here
}

View file

@ -2,22 +2,11 @@
set -e
# Checkout our nixpkg tree
git config --global http.sslVerify false
NIXREPO=/etc/nixos
# (cd $NIXREPO && git clone http://github.com/oxdi/nixpkgs.git)
# Update and initialize our new configuration
# nixos-rebuild -I nixos=$NIXREPO/nixpkgs/nixos -I nixpkgs=$NIXREPO/nixpkgs switch
nixos-rebuild switch
nix-channel --remove nixos
nix-channel --add http://nixos.org/channels/nixos-unstable nixos
nixos-rebuild switch --upgrade
# Cleanup any previous generations and delete old packages that can be
# pruned.
for x in `seq 0 2` ; do
nix-env --delete-generations old
nix-collect-garbage -d
done
# Cleanup any previous generations and delete old packa
nix-collect-garbage -d
# Zero out the disk (for better compression)
# dd if=/dev/zero of=/EMPTY bs=1M
# rm -rf /EMPTY

View file

@ -22,9 +22,9 @@
"guest_additions_mode": "disable",
"guest_os_type": "Linux_64",
"http_directory": "nixos",
"iso_checksum": "48395b4bd21675703c87cfae1feb68ed",
"iso_checksum": "e6193d70d283d05795cb07422689d1cd",
"iso_checksum_type": "md5",
"iso_url": "http://releases.nixos.org/nixos/unstable/nixos-14.02pre38596.1dd0e05/nixos-minimal-14.02pre38596.1dd0e05-x86_64-linux.iso",
"iso_url": "http://releases.nixos.org/nixos/13.10/nixos-13.10.35608.1e7192a/nixos-minimal-13.10.35608.1e7192a-x86_64-linux.iso",
"shutdown_command": "sudo shutdown -h now",
"ssh_username": "root",
"ssh_key_path": "keys/install.key",
@ -47,7 +47,7 @@
"post-processors": [
{
"type": "vagrant",
"output": "cycle64-{{.Provider}}.box"
"output": "cycle-13.10-x86_64-{{.Provider}}.box"
}
]
}