summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Vagrantfile110
-rwxr-xr-xinstall-pixelated.sh3
-rwxr-xr-xprovisioning/bootstrap.sh61
-rw-r--r--provisioning/provision.sh10
4 files changed, 12 insertions, 172 deletions
diff --git a/Vagrantfile b/Vagrantfile
index 66fada32..1f896863 100644
--- a/Vagrantfile
+++ b/Vagrantfile
@@ -5,115 +5,11 @@
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
- # All Vagrant configuration is done here. The most common configuration
- # options are documented and commented below. For a complete reference,
- # please see the online documentation at vagrantup.com.
-
- # Every Vagrant virtual environment requires a box to build off of.
config.vm.box = "ubuntu/trusty64"
- # The url from where the 'config.vm.box' box will be fetched if it
- # doesn't already exist on the user's system.
- # config.vm.box_url = "http://domain.com/path/to/above.box"
-
- # Create a forwarded port mapping which allows access to a specific port
- # within the machine from a port on the host machine. In the example below,
- # accessing "localhost:8080" will access port 80 on the guest machine.
config.vm.network :forwarded_port, guest: 3333, host: 3333
-
config.vm.provision :shell, path: "provisioning/provision.sh"
- # Create a private network, which allows host-only access to the machine
- # using a specific IP.
- # config.vm.network :private_network, ip: "192.168.33.10"
-
- # Create a public network, which generally matched to bridged network.
- # Bridged networks make the machine appear as another physical device on
- # your network.
- # config.vm.network :public_network
-
- # If true, then any SSH connections made will enable agent forwarding.
- # Default value: false
- # config.ssh.forward_agent = true
-
- # Share an additional folder to the guest VM. The first argument is
- # the path on the host to the actual folder. The second argument is
- # the path on the guest to mount the folder. And the optional third
- # argument is a set of non-required options.
- # config.vm.synced_folder "../data", "/vagrant_data"
-
- # Provider-specific configuration so you can fine-tune various
- # backing providers for Vagrant. These expose provider-specific options.
- # Example for VirtualBox:
- #
- # config.vm.provider :virtualbox do |vb|
- # # Don't boot with headless mode
- # vb.gui = true
- #
- # # Use VBoxManage to customize the VM. For example to change memory:
- # vb.customize ["modifyvm", :id, "--memory", "1024"]
- # end
- #
- # View the documentation for the provider you're using for more
- # information on available options.
-
- # 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 precise64.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 = "init.pp"
- # end
-
- # Enable provisioning with chef solo, specifying a cookbooks path, roles
- # path, and data_bags path (all relative to this Vagrantfile), and adding
- # some recipes and/or roles.
- #
- # config.vm.provision :chef_solo do |chef|
- # chef.cookbooks_path = "../my-recipes/cookbooks"
- # chef.roles_path = "../my-recipes/roles"
- # chef.data_bags_path = "../my-recipes/data_bags"
- # chef.add_recipe "mysql"
- # chef.add_role "web"
- #
- # # You may also specify custom JSON attributes:
- # chef.json = { :mysql_password => "foo" }
- # end
-
- # Enable provisioning with chef server, specifying the chef server URL,
- # and the path to the validation key (relative to this Vagrantfile).
- #
- # The Opscode Platform uses HTTPS. Substitute your organization for
- # ORGNAME in the URL and validation key.
- #
- # If you have your own Chef Server, use the appropriate URL, which may be
- # HTTP instead of HTTPS depending on your configuration. Also change the
- # validation key to validation.pem.
- #
- # config.vm.provision :chef_client do |chef|
- # chef.chef_server_url = "https://api.opscode.com/organizations/ORGNAME"
- # chef.validation_key_path = "ORGNAME-validator.pem"
- # end
- #
- # If you're using the Opscode platform, your validator client is
- # ORGNAME-validator, replacing ORGNAME with your organization name.
- #
- # If you have your own Chef Server, the default validation client name is
- # chef-validator, unless you changed the configuration.
- #
- # chef.validation_client_name = "ORGNAME-validator"
+ config.vm.provider "virtualbox" do |v|
+ v.memory = 1024
+ end
end
diff --git a/install-pixelated.sh b/install-pixelated.sh
index 0f618a16..62e78703 100755
--- a/install-pixelated.sh
+++ b/install-pixelated.sh
@@ -41,7 +41,6 @@ cd ../service
virtualenv .virtualenv
source .virtualenv/bin/activate
./go develop --always-unzip
-pip uninstall -y gnupg; pip install gnupg
# print usage
cat <<EOF
@@ -52,7 +51,7 @@ cat <<EOF
## You might also need to add your LEAP provider ssl certificate to pixelated manually for now, with the following steps:
## The easiest way to find this is accessing https://your.provider.org/ca.crt
-## Rename the certificate based on your provider domain name like this `your.leapprovider.org.crt`
+## Rename the certificate based on your provider domain name like this 'your.leapprovider.org.crt'
## Put it in services/pixelated/certificates/
## Once you are done, just run:
diff --git a/provisioning/bootstrap.sh b/provisioning/bootstrap.sh
deleted file mode 100755
index eb444382..00000000
--- a/provisioning/bootstrap.sh
+++ /dev/null
@@ -1,61 +0,0 @@
-#!/bin/bash
-#
-# Copyright (c) 2014 ThoughtWorks, Inc.
-#
-# Pixelated is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# Pixelated is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with Pixelated. If not, see <http://www.gnu.org/licenses/>.
-
-# test dependencies
-function check_installed() {
- which $1
- if [ $? -ne 0 ]; then
- echo "## You must have ${1} installed and in the PATH to run Pixelated-User-Agent"
- echo "## exiting..."
- exit 1
- fi
-}
-
-for dependency in node npm ruby bundle virtualenv git gpg; do
- check_installed $dependency
-done
-
-# install web-ui dependencies
-cd /vagrant/web-ui
-npm install
-node_modules/bower/bin/bower install --config.interactive=false
-bundle install
-LC_ALL=en_US.UTF-8 ./go build
-
-# install service dependencies
-cd ../service
-virtualenv .virtualenv
-source .virtualenv/bin/activate
-./go develop --always-unzip
-pip uninstall -y gnupg; pip install gnupg
-
-# print usage
-cat <<EOF
-
-###############
-
-## You will need an account in a LEAP provider. You may find some at http://bitmask.net/
-
-## Once you have it, modify the service/pixelated.example file and move it to ~/.pixelated
-
-## You might also need to add your LEAP provider ssl certificate to the pixelated/certificates folder, named as your provider domain name (in case it uses TLS):
-## - example: your.leapprovider.org.crt
-
-## Once you are done, just run:
-## pixelated-user-agent
-
-EOF
diff --git a/provisioning/provision.sh b/provisioning/provision.sh
index cba9e5c4..63b1fabf 100644
--- a/provisioning/provision.sh
+++ b/provisioning/provision.sh
@@ -1,7 +1,13 @@
sudo apt-get update
-sudo apt-get install -y git nodejs-legacy npm python-setuptools python-dev libffi-dev g++
+sudo apt-get install -y git nodejs-legacy npm python-setuptools python-dev libffi-dev g++ rng-tools
sudo easy_install pip
sudo pip install virtualenv
sudo gem install bundler
-/vagrant/provisioning/bootstrap.sh
+sudo echo "HRNGDEVICE=/dev/urandom" >> /etc/default/rng-tools
+
+sudo /etc/init.d/rng-tools start
+
+cd /vagrant
+
+./install-pixelated.sh