# -*- mode: ruby -*- # vi: set ft=ruby : VAGRANTFILE_API_VERSION = "2" Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| # set to false, if you do NOT want to check the correct VirtualBox Guest Additions version when booting this box #if defined?(VagrantVbguest::Middleware) #config.vbguest.auto_update = true #end config.vm.box = "centos/7" #config.vm.box_url = "http://cloud.centos.org/centos/7/vagrant/x86_64/images/CentOS-7-x86_64-Vagrant-1901_01.VirtualBox.box" config.vm.boot_timeout = 300 ################################################################# # NETWORK # https://www.vagrantup.com/docs/networking/public_network.html ################################################################# config.vm.network "public_network", type: "dhcp", bridge: "en0: Wi-Fi (AirPort)" #STATIC: ip: "192.168.0.17" #DHCP: use_dhcp_assigned_default_route: true #DEFAULT NETWORK INTERFACE: public_network: "wlan0" config.vm.network 'private_network', ip: "192.168.130.10", auto_config: "false" # Static IP: ip: "192.168.50.4" #name: "VirtualBox Host-Only Ethernet Adapter" #virtualbox__intnet: "mynetwork" #nic_type: "virtio" #virtualbox__intnet: "mynetwork" #auto_config: false config.vm.network 'private_network', ip: "192.168.130.20", auto_config: "false" config.vm.network 'private_network', ip: "192.168.130.30", auto_config: "false" config.vm.network 'private_network', ip: "192.168.130.40", auto_config: "false" #config.vm.network :forwarded_port, guest: 5601, host: 5601 #config.ssh.port = 2222 #config.ssh.host = "192.168.130.10" #config.vm.network :forwarded_port, guest: 22, host: 2222, id: "ssh", auto_correct: true #config.vm.network "forwarded_port", guest: 2003, host: 12003, protocol: "tcp" # web-servers config.vm.network "forwarded_port", guest: 8080, host: 8080 config.vm.network "forwarded_port", guest: 8081, host: 8081 config.vm.network "forwarded_port", guest: 80, host: 80 config.vm.network "forwarded_port", guest: 443, host: 443 # Port for Prometeus config.vm.network "forwarded_port", guest: 9090, host: 9090 # Port for AlerManager config.vm.network "forwarded_port", guest: 9093, host: 9093 # GitLab Registry: 5000 5001 5005 4567 config.vm.network "forwarded_port", guest: 5000, host: 5000 #config.vm.network "forwarded_port", guest: 5001, host: 5001 config.vm.network "forwarded_port", guest: 5005, host: 5005 config.vm.network "forwarded_port", guest: 4567, host: 4567 # PostgreSQL: 5432 config.vm.network "forwarded_port", guest: 5432, host: 5432 # Redis: 6379 config.vm.network "forwarded_port", guest: 6379, host: 6379 # Nginx status: 8060 config.vm.network "forwarded_port", guest: 8060, host: 8060 # Node exporter: 9100 config.vm.network "forwarded_port", guest: 9100, host: 9100 # Redis exporter: 9121 config.vm.network "forwarded_port", guest: 9121, host: 9121 # Postgres exporter: 9187 config.vm.network "forwarded_port", guest: 9187, host: 9187 # PgBouncer exporter: 9188 config.vm.network "forwarded_port", guest: 9188, host: 9188 # Gitlab monitor: 9168 config.vm.network "forwarded_port", guest: 9168, host: 9168 # Sidekiq exporter: 8082 config.vm.network "forwarded_port", guest: 8082, host: 8082 # Redis Sentinel: 26379 config.vm.network "forwarded_port", guest: 26379, host: 26379 # Incoming email: 143 config.vm.network "forwarded_port", guest: 143, host: 143 # Elastic search 9200 config.vm.network "forwarded_port", guest: 9200, host: 9200 # Kerberos: 8443 and/or 8088 config.vm.network "forwarded_port", guest: 8443, host: 8443 config.vm.network "forwarded_port", guest: 8088, host: 8088 # SMTP: 465 config.vm.network "forwarded_port", guest: 465, host: 465 # Remote syslog: 514 config.vm.network "forwarded_port", guest: 514, host: 514 # Mattermost: 8065 config.vm.network "forwarded_port", guest: 8065, host: 8065 # PgBouncer: 6432 config.vm.network "forwarded_port", guest: 6432, host: 6432 # Consul: 8300 or 8500 config.vm.network "forwarded_port", guest: 8300, host: 8300 config.vm.network "forwarded_port", guest: 8500, host: 8500 # NFS: 2049 or 111 config.vm.network "forwarded_port", guest: 2049, host: 2049 config.vm.network "forwarded_port", guest: 111, host: 111 # Gitlab-runner: 2811 config.vm.network "forwarded_port", guest: 2811, host: 2811 config.vm.provision :shell, :inline => 'sudo service network restart' ################################################################# # SSH ################################################################# config.ssh.forward_agent = true config.ssh.shell = "bash -c 'BASH_ENV=/etc/profile exec bash'" # avoids 'stdin: is not a tty' error. config.vm.hostname = "gitlab-ci-server" #config.ssh.username = "vagrant" #confg.ssh.password = "vagrant" #config.ssh.private_key_path = ["~/.vagrant.d/insecure_private_key"] #config.ssh.private_key_path = './keys/ansible.rsa' #config.ssh.insert_key = false #config.vm.provision "file", source: "./keys", destination: "~/.ssh/" #config.vm.provision :shell, :inline => 'sed -i -e "s/PasswordAuthentication no/PasswordAuthentication yes/g" /etc/ssh/sshd_config' #config.vm.provision :shell, :inline => 'sudo service sshd restart' #config.vm.provision "shell", inline: <<-EOC # sudo sed -i -e "\\#PasswordAuthentication no# s#PasswordAuthentication no#PasswordAuthentication yes#g" /etc/ssh/sshd_config # sudo service ssh restart # EOC # ################################################################# # plugin ################################################################# # Cache the yum packages locally if we can if Vagrant.has_plugin?("vagrant-cachier") config.cache.scope = :machine config.cache.auto_detect = true config.cache.enable :yum end # Check for vbguest plugin if Vagrant.has_plugin?("vagrant-vbguest") config.vbguest.auto_update = true config.vbguest.no_remote = false end ################################################################## # VIRTUALBOX conficurations ################################################################## config.vm.provider :virtualbox do |vb| # Don't boot with headless mode vb.gui = false vb.name = "gitlab-ci-server" #v.linked_clone = true #v.linked_clone = true if Vagrant::VERSION =~ /^1.8/ vb.customize ["modifyvm", :id, "--memory", "4096"] vb.customize ["modifyvm", :id, "--vram", "256"] vb.customize ["modifyvm", :id, "--cpus", "4"] vb.customize ["modifyvm", :id, "--cpuexecutioncap", "75"] vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"] vb.customize ["modifyvm", :id, "--ioapic", "on"] vb.customize ["modifyvm", :id, "--natdnsproxy1", "on"] #unless File.exist?(disk) #vb.customize ['createhd', '--filename', disk, '--variant', 'Fixed', '--size', 1 * 1024] ##vb.customize ['createhd', '--filename', disk, '--size', 500 * 1024] #end #vb.customize ['storageattach', :id, '--storagectl', 'SATA Controller', '--port', 1, '--device', 0, '--type', 'hdd', '--medium', disk] end ################################################################## # RSYNCd ################################################################## # config.vm.synced_folder ".", "/home/vagrant/test", create: "./test", owner:"captain", group:"staff", mount_options:["dmode=776", "fmode=775"], disabled: true # #config.vm.synced_folder ".", "/home/vagrant", type: "rsync", rsync__exclude: ["Vagrantfile", ".vagrant", "keys"], dest_port: 2222 #config.vm.synced_folder ".", "/home/vagrant", type: "rsync", # rsync__args: [ # "--verbose", "--archive", "-z", "--copy-links", # defaults # "--ignore-existing", "--include=test2.txt", "--exclude='*'" # ] ################################################################## # SHELL scripts ################################################################## config.vm.provision "shell", inline: <<-SHELL echo "HELLO"; #yum update -y && yum upgrade -y SHELL config.vm.provision :shell, :path => "shell/test.sh" ################################################################# # another VM ################################################################# #config.vm.define "web" do |web| # web.vm.box = "apache" #end ################################################################# end