Skip to content

Commit 56be4ca

Browse files
committedNov 6, 2020
Add Vagrantfile for quick and safe server deployment tests
Signed-off-by: Alexis Jeandet <alexis.jeandet@member.fsf.org>
1 parent a3212a9 commit 56be4ca

File tree

3 files changed

+134
-0
lines changed

3 files changed

+134
-0
lines changed
 

‎.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ coverage.xml
99
build/
1010
dist/
1111
.tox/
12+
.vagrant/
1213
nosetests.xml
1314
env*/
1415
tmp/

‎vagrant/Vagrantfile

+87
Original file line numberDiff line numberDiff line change
@@ -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 = "fedora/33-cloud-base"
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+
#
52+
# config.vm.provider "virtualbox" do |vb|
53+
# # Display the VirtualBox GUI when booting the machine
54+
# vb.gui = true
55+
#
56+
# # Customize the amount of memory on the VM:
57+
# vb.memory = "1024"
58+
# end
59+
#
60+
# View the documentation for the provider you are using for more
61+
# information on available options.
62+
63+
config.vm.provider :libvirt do |domain|
64+
domain.memory = "16384"
65+
domain.cpus = 8
66+
end
67+
config.vm.provision "file", source: "./sciqlop-proxy.conf", destination: "~/sciqlop-proxy.conf"
68+
config.vm.provision "file", source: "../docker/Dockerfile", destination: "~/spwc-docker/Dockerfile"
69+
config.vm.provision "file", source: "../docker/entry_point.sh", destination: "~/spwc-docker/entry_point.sh"
70+
71+
72+
# Enable provisioning with a shell script. Additional provisioners such as
73+
# Ansible, Chef, Docker, Puppet and Salt 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+
sudo dnf update -y
77+
mkdir -p /DATA/spwc_proxy /DATA/log/spwc
78+
sudo chmod -R 777 /DATA
79+
sudo dnf install -y nginx podman nginx-all-modules git
80+
sudo mv /home/vagrant/sciqlop-proxy.conf /etc/nginx/conf.d/sciqlop-proxy.conf
81+
sed -i s/SELINUX=enforcing/SELINUX=disabled/ /etc/selinux/config
82+
sudo setenforce 0
83+
systemctl enable --now nginx
84+
cd /home/vagrant/spwc-docker/ && sudo podman build -t spwc_proxy .
85+
sudo podman run --restart unless-stopped --ulimit nofile=262144:262144 -d -v /DATA/spwc_proxy:/data -v /DATA/log:/log -e SPWC_CACHE_SIZE="1e10" -p6543:6543 --name spwc-proxy spwc_proxy
86+
SHELL
87+
end

‎vagrant/sciqlop-proxy.conf

+46
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
#thread_pool pool_1 threads=32;
2+
#thread_pool pool_2 threads=32;
3+
#worker_processes 64;
4+
server {
5+
listen 80;
6+
listen [::]:80;
7+
8+
location /cache{
9+
proxy_set_header X-Forwarded-Proto $scheme;
10+
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
11+
proxy_set_header X-Forwarded-Host $host:$server_port;
12+
proxy_set_header X-Forwarded-Port $server_port;
13+
14+
client_max_body_size 1m;
15+
client_body_buffer_size 1m;
16+
proxy_connect_timeout 60s;
17+
proxy_send_timeout 90s;
18+
proxy_read_timeout 90s;
19+
proxy_buffering off;
20+
proxy_temp_file_write_size 64k;
21+
proxy_redirect off;
22+
23+
proxy_pass http://localhost:6543/;
24+
#aio threads=pool_1;
25+
}
26+
# location /cache-test{
27+
# proxy_set_header X-Forwarded-Proto $scheme;
28+
# proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
29+
# proxy_set_header X-Forwarded-Host $host:$server_port;
30+
# proxy_set_header X-Forwarded-Port $server_port;
31+
#
32+
# client_max_body_size 1m;
33+
# client_body_buffer_size 1m;
34+
# proxy_connect_timeout 60s;
35+
# proxy_send_timeout 90s;
36+
# proxy_read_timeout 90s;
37+
# proxy_buffering off;
38+
# proxy_temp_file_write_size 64k;
39+
# #proxy_redirect on;
40+
#
41+
# proxy_pass http://sciqlop.lpp.polytechnique.fr:6544/;
42+
# #proxy_redirect http://sciqlop.lpp.polytechnique.fr:6544/ http://$host/cache-test/;
43+
# #aio threads=pool_1;
44+
# }
45+
}
46+

0 commit comments

Comments
 (0)
Please sign in to comment.