diff options
author | Andrey Volkov <av903u@att.com> | 2018-10-22 11:53:09 -0700 |
---|---|---|
committer | Andrey Volkov <av903u@att.com> | 2018-10-23 14:54:39 -0700 |
commit | fe54727339b66253e2e7e5a74a02e0536980efe2 (patch) | |
tree | eb7526fdfcba1e67596efd52df76923db2825597 | |
parent | 0f0bcb7fd3e59cf4346de8278d8312bb463116b3 (diff) |
Vagrantfile for testing
-rw-r--r-- | Vagrantfile | 111 |
1 files changed, 111 insertions, 0 deletions
diff --git a/Vagrantfile b/Vagrantfile new file mode 100644 index 0000000..1eee671 --- /dev/null +++ b/Vagrantfile | |||
@@ -0,0 +1,111 @@ | |||
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 = 1 | ||
58 | vplh.memory = 2048 | ||
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"] = "2048" | ||
64 | vmw.vmx["numvcpus"] = "1" | ||
65 | end | ||
66 | end | ||
67 | |||
68 | # | ||
69 | # View the documentation for the provider you are using for more | ||
70 | # information on available options. | ||
71 | |||
72 | # Enable provisioning with a shell script. Additional provisioners such as | ||
73 | # Puppet, Chef, Ansible, Salt, and Docker are also available. Please see the | ||
74 | # documentation for more information about their specific syntax and use. | ||
75 | # config.vm.provision "shell", inline: <<-SHELL | ||
76 | # apt-get update | ||
77 | # apt-get install -y apache2 | ||
78 | # SHELL | ||
79 | config.vm.define "aptly" do |node| | ||
80 | node.vm.hostname = "aptly" | ||
81 | |||
82 | node.vm.provision "file", source: ".", destination: "$HOME/docker-aptly" | ||
83 | |||
84 | node.vm.provision :shell, inline: <<-SHELL | ||
85 | echo htop > /home/vagrant/docker-aptly/assets/packages | ||
86 | echo telnetd >> /home/vagrant/docker-aptly/assets/packages | ||
87 | echo openbsd-inetd >> /home/vagrant/docker-aptly/assets/packages | ||
88 | echo inet-superserver >> /home/vagrant/docker-aptly/assets/packages | ||
89 | echo 'mysql-client (>= 3.6)' >> /home/vagrant/docker-aptly/assets/packages | ||
90 | SHELL | ||
91 | |||
92 | node.vm.provision "docker" do |d| | ||
93 | d.build_image "/home/vagrant/docker-aptly -t aptly:test" | ||
94 | d.run "aptly", | ||
95 | args: "-p '8080:80' -v '/home/vagrant/docker-aptly/assets/nginx:/opt/nginx'", | ||
96 | image: "aptly:test" | ||
97 | end | ||
98 | |||
99 | node.vm.provision :shell, inline: <<-SHELL | ||
100 | sleep 5 | ||
101 | curl -s localhost:8080/aptly_repo_signing.key | apt-key add - | ||
102 | mv /etc/apt/sources.list /etc/apt/sources.list.backup | ||
103 | touch /etc/apt/sources.list | ||
104 | add-apt-repository 'deb http://localhost:8080 xenial main' | ||
105 | apt-get update | ||
106 | apt-cache policy htop | ||
107 | apt-get install -y htop mysql-client | ||
108 | apt-get install -y telnetd || echo "telnetd was not installed due to blacklist" | ||
109 | SHELL | ||
110 | end | ||
111 | end | ||