|
1 | 1 | # -*- mode: ruby -*- |
2 | 2 | # vi: set ft=ruby : |
3 | 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 | 4 | 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://atlas.hashicorp.com/search. |
15 | | - config.vm.box = "centos/7" |
16 | | - config.vm.hostname = "mirror" |
17 | | - config.vm.synced_folder ".", "/vagrant", type: "rsync" |
18 | | - |
19 | | - # Disable automatic box update checking. If you disable this, then |
20 | | - # boxes will only be checked for updates when the user runs |
21 | | - # `vagrant box outdated`. This is not recommended. |
22 | | - # config.vm.box_check_update = false |
23 | | - |
24 | | - # Create a forwarded port mapping which allows access to a specific port |
25 | | - # within the machine from a port on the host machine. In the example below, |
26 | | - # accessing "localhost:8080" will access port 80 on the guest machine. |
27 | | - # config.vm.network "forwarded_port", guest: 80, host: 8080 |
28 | | - |
29 | | - # Create a private network, which allows host-only access to the machine |
30 | | - # using a specific IP. |
31 | | - # config.vm.network "private_network", ip: "192.168.33.10" |
32 | | - |
33 | | - # Create a public network, which generally matched to bridged network. |
34 | | - # Bridged networks make the machine appear as another physical device on |
35 | | - # your network. |
36 | | - # config.vm.network "public_network" |
37 | | - |
38 | | - # Share an additional folder to the guest VM. The first argument is |
39 | | - # the path on the host to the actual folder. The second argument is |
40 | | - # the path on the guest to mount the folder. And the optional third |
41 | | - # argument is a set of non-required options. |
42 | | - # config.vm.synced_folder "../data", "/vagrant_data" |
43 | | - |
44 | | - # Provider-specific configuration so you can fine-tune various |
45 | | - # backing providers for Vagrant. These expose provider-specific options. |
46 | | - # Example for VirtualBox: |
47 | | - # |
48 | | - # config.vm.provider "virtualbox" do |vb| |
49 | | - # # Display the VirtualBox GUI when booting the machine |
50 | | - # vb.gui = true |
51 | | - # |
52 | | - # # Customize the amount of memory on the VM: |
53 | | - # vb.memory = "1024" |
54 | | - # end |
55 | | - # |
56 | | - # View the documentation for the provider you are using for more |
57 | | - # information on available options. |
58 | | - |
59 | | - # Define a Vagrant Push strategy for pushing to Atlas. Other push strategies |
60 | | - # such as FTP and Heroku are also available. See the documentation at |
61 | | - # https://docs.vagrantup.com/v2/push/atlas.html for more information. |
62 | | - # config.push.define "atlas" do |push| |
63 | | - # push.app = "YOUR_ATLAS_USERNAME/YOUR_APPLICATION_NAME" |
64 | | - # end |
65 | | - |
66 | | - # Enable provisioning with a shell script. Additional provisioners such as |
67 | | - # Puppet, Chef, Ansible, Salt, and Docker are also available. Please see the |
68 | | - # documentation for more information about their specific syntax and use. |
69 | | - config.vm.provision "shell", inline: <<-SHELL |
70 | | - sleep 10 |
71 | | - sudo yum -y install rsync httpd wget |
72 | | - sudo systemctl enable httpd.service |
73 | | - sudo systemctl start httpd.service |
74 | | - # CentOS 7 |
75 | | - sudo mkdir -p /var/www/html/centos/7.4.1708/os/ |
76 | | - sudo ln -s /var/www/html/centos/7.4.1708 /var/www/html/centos/7 |
77 | | - sudo rsync -avSHP --delete --exclude "local*" --exclude "isos" mirror.eu.oneandone.net::centos/7.4.1708/os/ /var/www/html/centos/7.4.1708/os/ |
78 | | - sudo mkdir -p /var/www/html/epel/7/x86_64/ |
79 | | - sudo rsync -vaH --exclude="debug*" --numeric-ids --delete --delete-after --delay-updates rsync://rsync.hrz.tu-chemnitz.de/fedora-epel/7/x86_64/ /var/www/html/epel/7/x86_64/ |
80 | | - sudo mkdir -p /var/www/html/puppet5/el/7/x86_64/ |
81 | | - sudo rsync -av --copy-links --del rsync://yum.puppet.com/packages/yum/puppet5/el/7/x86_64/ /var/www/html/puppet5/el/7/x86_64/ |
82 | | - sudo mkdir -p /var/www/html/foreman/releases/latest/el7/x86_64/ |
83 | | - sudo rsync -av --copy-links --del rsync://yum.theforeman.org/yum/releases/latest/el7/x86_64/ /var/www/html/foreman/releases/latest/el7/x86_64/ |
84 | | - sudo mkdir -p /var/www/html/foreman/plugins/latest/el7/x86_64/ |
85 | | - sudo rsync -av --copy-links --del rsync://yum.theforeman.org/yum/plugins/latest/el7/x86_64/ /var/www/html/foreman/plugins/latest/el7/x86_64/ |
86 | | - sudo mkdir -p /var/www/html/foreman/discovery |
87 | | - sudo wget -P /var/www/html/foreman/discovery http://downloads.theforeman.org/discovery/releases/latest/fdi-image-latest.tar |
88 | | - SHELL |
| 5 | + config.vm.define "mirror" do |mirror| |
| 6 | + mirror.vm.box = "centos/7" |
| 7 | + mirror.vm.hostname = "mirror.localdomain" |
| 8 | + mirror.vm.synced_folder ".", "/vagrant", type: "rsync" |
| 9 | + |
| 10 | + mirror.vm.provision "shell", inline: <<-SHELL |
| 11 | + sleep 10 |
| 12 | + sudo yum -y install rsync httpd wget |
| 13 | + sudo systemctl enable httpd.service |
| 14 | + sudo systemctl start httpd.service |
| 15 | + # CentOS 8 |
| 16 | + sudo mkdir -p /var/www/html/centos/8.2.2004/{BaseOS,AppStream}/x86_64 |
| 17 | + sudo ln -s /var/www/html/centos/8.2.2004 /var/www/html/centos/8 |
| 18 | + sudo rsync -avSHP --delete --exclude "local*" --exclude "isos" mirror.eu.oneandone.net::centos/8.2.2004/BaseOS/x86_64/ /var/www/html/centos/8.2.2004/BaseOS/x86_64/ |
| 19 | + sudo rsync -avSHP --delete --exclude "local*" --exclude "isos" mirror.eu.oneandone.net::centos/8.2.2004/AppStream/x86_64/ /var/www/html/centos/8.2.2004/AppStream/x86_64/ |
| 20 | + sudo mkdir -p /var/www/html/epel/8/{Everything,Modular}/x86_64/ |
| 21 | + sudo rsync -vaH --exclude="debug*" --numeric-ids --delete --delete-after --delay-updates rsync://rsync.hrz.tu-chemnitz.de/fedora-epel/8/Everything/x86_64/ /var/www/html/epel/8/Everything/x86_64/ |
| 22 | + sudo rsync -vaH --exclude="debug*" --numeric-ids --delete --delete-after --delay-updates rsync://rsync.hrz.tu-chemnitz.de/fedora-epel/8/Modular/x86_64/ /var/www/html/epel/8/Modular/x86_64/ |
| 23 | + sudo mkdir -p /var/www/html/puppet6/el/8/x86_64/ |
| 24 | + sudo rsync -av --copy-links --del --exclude "pdk*" --exclude "puppet-bolt*" --exclude "puppetdb*" --exclude="puppetserver*" rsync://rsync.puppet.com/packages/yum/puppet6/el/8/x86_64/ /var/www/html/puppet6/el/8/x86_64/ |
| 25 | + sudo mkdir -p /var/www/html/foreman/releases/latest/el8/x86_64/ |
| 26 | + sudo rsync -av --copy-links --del rsync://rsync.theforeman.org/yum/releases/latest/el8/x86_64/ /var/www/html/foreman/releases/latest/el8/x86_64/ |
| 27 | + sudo mkdir -p /var/www/html/foreman/plugins/latest/el8/x86_64/ |
| 28 | + sudo rsync -av --copy-links --del rsync://rsync.theforeman.org/yum/plugins/latest/el8/x86_64/ /var/www/html/foreman/plugins/latest/el8/x86_64/ |
| 29 | + sudo mkdir -p /var/www/html/foreman/client/latest/el8/x86_64/ |
| 30 | + sudo rsync -av --copy-links --del rsync://rsync.theforeman.org/yum/client/latest/el8/x86_64/ /var/www/html/foreman/client/latest/el8/x86_64/ |
| 31 | + sudo mkdir -p /var/www/html/foreman/discovery |
| 32 | + sudo rm /var/www/html/foreman/discovery/fdi-image-latest.tar |
| 33 | + sudo wget -P /var/www/html/foreman/discovery http://downloads.theforeman.org/discovery/releases/latest/fdi-image-latest.tar |
| 34 | + SHELL |
| 35 | + end |
| 36 | + |
| 37 | + config.vm.define "foreman" do |foreman| |
| 38 | + foreman.vm.box = "centos/8" |
| 39 | + foreman.vm.hostname = "foreman.localdomain" |
| 40 | + foreman.vm.synced_folder ".", "/vagrant", type: "rsync" |
| 41 | + |
| 42 | + foreman.vm.provision "shell", path: "_files/share/foreman/finish.sh" |
| 43 | + end |
| 44 | + |
| 45 | + config.vm.define "monitoring" do |foreman| |
| 46 | + foreman.vm.box = "centos/8" |
| 47 | + foreman.vm.hostname = "monitoring.localdomain" |
| 48 | + foreman.vm.synced_folder ".", "/vagrant", type: "rsync" |
| 49 | + |
| 50 | + foreman.vm.provision "file", source: "_files/share/monitoring/monitoring.localdomain.pp", destination: "~/" |
| 51 | + foreman.vm.provision "file", source: "_files/share/monitoring/icingaweb2.conf", destination: "~/" |
| 52 | + foreman.vm.provision "shell", path: "_files/share/monitoring/finish.sh" |
| 53 | + end |
89 | 54 | end |
0 commit comments