Browse Source

Added Vagrantfile

Vagrantfile can be used to launch airship-in-a-bottle demo deployment
in one command.

Change-Id: Ib0a54f5e3ed19d3e4cd86bd23299562b1e37d598
changes/23/575123/2
Roman Gorshunov 11 months ago
parent
commit
688015f738
2 changed files with 95 additions and 0 deletions
  1. 8
    0
      README.md
  2. 87
    0
      Vagrantfile

+ 8
- 0
README.md View File

@@ -18,6 +18,14 @@ cd /root/deploy/airship-in-a-bottle/manifests/dev_single_node
18 18
 ./airship-in-a-bottle.sh
19 19
 ```
20 20
 
21
+Or, alternatively, if you have Vagrant installed, just run the following
22
+(only libvirt/kvm hypervisor is tested, but vagrant box supports VMware
23
+Desktop/Workstation/Fusion, Parallels, and Hyper-V):
24
+```
25
+curl -O https://git.airshipit.org/cgit/airship-in-a-bottle/plain/Vagrantfile
26
+vagrant up
27
+```
28
+
21 29
 ## Components
22 30
 
23 31
 ### Shipyard

+ 87
- 0
Vagrantfile View File

@@ -0,0 +1,87 @@
1
+# -*- mode: ruby -*-
2
+# vi: set ft=ruby :
3
+
4
+# All Vagrant configuration is done below. The "2" in Vagrant.configure
5
+# configures the configuration version (we support older styles for
6
+# backwards compatibility). Please don't change it unless you know what
7
+# you're doing.
8
+Vagrant.configure("2") do |config|
9
+  # The most common configuration options are documented and commented below.
10
+  # For a complete reference, please see the online documentation at
11
+  # https://docs.vagrantup.com.
12
+
13
+  # Every Vagrant development environment requires a box. You can search for
14
+  # boxes at https://vagrantcloud.com/search.
15
+  config.vm.box = "generic/ubuntu1604"
16
+
17
+  # Disable automatic box update checking. If you disable this, then
18
+  # boxes will only be checked for updates when the user runs
19
+  # `vagrant box outdated`. This is not recommended.
20
+  # config.vm.box_check_update = false
21
+
22
+  # Create a forwarded port mapping which allows access to a specific port
23
+  # within the machine from a port on the host machine. In the example below,
24
+  # accessing "localhost:8080" will access port 80 on the guest machine.
25
+  # NOTE: This will enable public access to the opened port
26
+  # config.vm.network "forwarded_port", guest: 80, host: 8080
27
+
28
+  # Create a forwarded port mapping which allows access to a specific port
29
+  # within the machine from a port on the host machine and only allow access
30
+  # via 127.0.0.1 to disable public access
31
+  # config.vm.network "forwarded_port", guest: 80, host: 8080, host_ip: "127.0.0.1"
32
+
33
+  # Create a private network, which allows host-only access to the machine
34
+  # using a specific IP.
35
+  # config.vm.network "private_network", ip: "192.168.33.10"
36
+
37
+  # Create a public network, which generally matched to bridged network.
38
+  # Bridged networks make the machine appear as another physical device on
39
+  # your network.
40
+  # config.vm.network "public_network"
41
+
42
+  # Share an additional folder to the guest VM. The first argument is
43
+  # the path on the host to the actual folder. The second argument is
44
+  # the path on the guest to mount the folder. And the optional third
45
+  # argument is a set of non-required options.
46
+  # config.vm.synced_folder "../data", "/vagrant_data"
47
+
48
+  # Provider-specific configuration so you can fine-tune various
49
+  # backing providers for Vagrant. These expose provider-specific options.
50
+  # Example for VirtualBox:
51
+  #config.vm.provider "virtualbox" do |vb|
52
+  #  # Display the VirtualBox GUI when booting the machine
53
+  #  # vb.gui = true
54
+  #end
55
+  [:virtualbox, :parallels, :libvirt, :hyperv].each do |provider|
56
+    config.vm.provider provider do |vplh, override|
57
+      vplh.cpus = 4
58
+      vplh.memory = 20480
59
+    end
60
+  end
61
+  [:vmware_fusion, :vmware_workstation, :vmware_desktop].each do |provider|
62
+    config.vm.provider provider do |vmw, override|
63
+      vmw.vmx["memsize"] = "20480"
64
+      vmw.vmx["numvcpus"] = "4"
65
+    end
66
+  end
67
+  #
68
+  # View the documentation for the provider you are using for more
69
+  # information on available options.
70
+
71
+  # Enable provisioning with a shell script. Additional provisioners such as
72
+  # Puppet, Chef, Ansible, Salt, and Docker are also available. Please see the
73
+  # documentation for more information about their specific syntax and use.
74
+  # config.vm.provision "shell", inline: <<-SHELL
75
+  #   apt-get update
76
+  #   apt-get install -y apache2
77
+  # SHELL
78
+  config.vm.define "n0" do |node|
79
+    node.vm.hostname = "n0"
80
+    node.vm.provision :shell, inline: <<-SHELL
81
+      mkdir /root/deploy
82
+      git clone https://git.airshipit.org/airship-in-a-bottle /root/deploy/airship-in-a-bottle
83
+      cd /root/deploy/airship-in-a-bottle/manifests/dev_single_node
84
+      ./airship-in-a-bottle.sh -y
85
+    SHELL
86
+  end
87
+end

Loading…
Cancel
Save