Icinga Vagrant boxes used for development, tests and demo cases.
- Icinga 2 Standalone
- Icinga 2 Cluster
- Icinga 2 HA Cluster
- Icinga 2 InfluxDB
- Icinga 2 and Elastic
- Icinga 2 and Graylog
- Icinga 1.x
Each Vagrant box setup requires at least 2 Cores and 1 GB RAM.
The required resources are automatically configured during the
vagrant up
run.
- Vagrant >= 1.6.5 from http://www.vagrantup.com
One of these virtualization providers:
- Virtualbox >= 4.2.16 from http://www.virtualbox.org
- Parallels Desktop Pro/Business >= 11 from http://www.parallels.com/products/desktop/
In addition the listed requirements you'll need:
- SSH provided by the Git package from http://msysgit.github.io
- Ruby for Windows from http://rubyinstaller.org (add Ruby executables to PATH)
Install the Git package and set autocrlf
to false
(either in the setup
dialog or using the cmd shell):
git config core.autocrlf false
Then clone this repository:
git clone https://github.com/Icinga/icinga-vagrant
If Virtualbox is installed, this will be enabled by default.
You'll need to install the vagrant-parallels plugin first:
$ vagrant plugin install vagrant-parallels
Please note that these boxes are built for development and tests only. Productive setups are not supported.
In case you've found a problem or want to submit a patch, please open an issue at dev.icinga.org.
Change the directory to the box you want to start.
Example icinga2x:
$ cd icinga2x
You can only do vagrant up
in a box directory. Verify that
by checking for the existance of the Vagrantfile
file in the current
directory.
$ pwd
/home/michi/coding/icinga/icinga-vagrant/icinga2x
$ ls -la Vagrantfile
-rw-------. 1 michi michi 1,4K 28. Aug 12:11 Vagrantfile
vagrant up
starts all vms for this box setupvagrant halt
stops all vms for this box setupvagrant provision
updates packages/resets configuration for all vmsvagrant ssh
puts you into an ssh shell with loginvagrant
(Tip: Usesudo -i
to becomeroot
)
Note
Multi-VM boxes require the hostname for
vagrant ssh
like so:vagrant ssh icinga2b
. That works in a similar fashion for other sub commands.
If your box is broken, you can destroy it using vagrant destroy
. Next vagrant up
run will use the already imported base box, re-running the provisioner to install
the packages and configuration.
Follow the instructions described in the README.md
file
for each box.
Choose one of the available boxes below.
- 1 VM
- Icinga 2 Core
- Icinga 2 API
- Icinga Web 2
- Icinga Director
- PNP module
- Graphite module
- Business Process module
- Generic TTS module
- NagVis module
- PNP4Nagios
- NagVis
- Graphite
- Grafana
- Dashing
Run Vagrant:
$ cd icinga2x && vagrant up
GUI | Url | Credentials |
---|---|---|
Icinga Web 2 | http://192.168.33.5/icingaweb2 | icingaadmin/icinga |
PNP4Nagios | http://192.168.33.5/pnp4nagios | - |
Graphite Web | http://192.168.33.5:8003 | - |
Grafana | http://192.168.33.5:8004 | admin/admin |
Dashing | http://192.168.33.5:8005 | - |
Note: In case Dashing is not running, restart it manually:
$ vagrant ssh -c "sudo /usr/local/bin/restart-dashing"
Access https://192.168.33.5:5665/v1/objects/hosts
using the credentials root/icinga
. More details in the documentation.
- 2 VMs as Icinga 2 Master/Checker Cluster
- Icinga 2 Core, DB IDO MySQL, Icinga Web 2
Run Vagrant:
$ cd icinga2x-cluster && vagrant up
GUI | Url | Credentials |
---|---|---|
Icinga Web 2 | http://192.168.33.10/icingaweb2 | icingaadmin/icinga |
Icinga Web 2 | http://192.168.33.20/icingaweb2 | icingaadmin/icinga |
Access https://192.168.33.10:5665/v1/objects/hosts
and https://192.168.33.20:5665/v1/objects/hosts
using the credentials root/icinga
.
- 2 Master VMs, 1 Satellite VM
- Icinga 2 Core, DB IDO MYSQL, Icinga Web 2
Run Vagrant:
$ cd icinga2x-ha-cluster && vagrant up
Note: DB IDO HA is disabled.
GUI | Url | Credentials |
---|---|---|
Icinga Web 2 | http://192.168.33.101/icingaweb2 | icingaadmin/icinga |
Icinga Web 2 | http://192.168.33.102/icingaweb2 | icingaadmin/icinga |
Icinga Web 2 | http://192.168.33.103/icingaweb2 | icingaadmin/icinga |
- 1 VM
- Icinga 2 Core
- Icinga 2 API
- Icinga Web 2
- InfluxDB
- Grafana
Run Vagrant:
$ cd icinga2x-influxdb && vagrant up
GUI | Url | Credentials |
---|---|---|
Icinga Web 2 | http://192.168.33.8/icingaweb2 | icingaadmin/icinga |
Grafana | http://192.168.33.8:8004 | admin/admin |
Access https://192.168.33.8:5665/v1/objects/hosts
using the credentials root/icinga
. More details in the documentation.
- Elastic Stack: Elasticsearch, Logstash, Kibana, Beats
- Icinga 2, Icinga Web 2
Run Vagrant:
$ cd icinga2x-elastic && vagrant up
GUI | Url | Credentials |
---|---|---|
Icinga Web 2 | http://192.168.33.7/icingaweb2 | icingaadmin/icinga |
Kibana | http://192.168.33.7:5601 | - |
- Graylog Server and Web with Elasticsearch, MongoDB
- Icinga 2, Icinga Web 2
Run Vagrant:
$ cd icinga2x-graylog && vagrant up
GUI | Url | Credentials |
---|---|---|
Icinga Web 2 | http://192.168.33.6/icingaweb2 | icingaadmin/icinga |
Graylog | http://192.168.33.6:9000 | admin/admin |
- 1 VM
- Icinga 1.x Core, IDOUtils MySQL, Classic UI, Web
Run Vagrant:
$ cd icinga1x && vagrant up
http://localhost:8081 shows an entry page including all urls and credentials.
GUI | Url | Credentials |
---|---|---|
Icinga Classic UI | :8081/icinga | icingaadmin/icingaadmin |
Icinga Web 1.x | :8081/icinga-web | root/password |
Jasperserver | :8082/jasperserver | jasperadmin/jasperadmin |
These boxes use these imported puppet modules for provisioning:
General:
Specific projects:
Name | Path | Url |
---|---|---|
graylog2-puppet | modules/graylog2 | https://github.com/Graylog2/graylog2-puppet.git |
puppet-elasticsearch | modules/elasticsearch | https://github.com/elasticsearch/puppet-elasticsearch.git |
puppet-logstash | modules/logstash | https://github.com/elastic/puppet-logstash.git - 5.x branch |
puppet-kibana4 | modules/kibana4 | https://github.com/lesaux/puppet-kibana4.git |
puppet-kibana5 | modules/kibana5 | https://github.com/Nextdoor/puppet-kibana5 |
puppet-filebeat | modules/filebeat | https://github.com/pcfens/puppet-filebeat.git |
puppetlabs-mongodb | modules/mongodb | https://github.com/puppetlabs/puppetlabs-mongodb.git |
golja-influxdb | modules/influxdb | https://github.com/n1tr0g/golja-influxdb.git including a PR for 1.0.0 support |
puppet-graphite | modules/graphite | Patched for systemd usage from https://github.com/echocat/puppet-graphite.git |
puppet-grafana | modules/grafana | https://github.com/bfraser/puppet-grafana.git |
Notes for developers only.
Add subtree:
$ git subtree add --prefix modules/vim https://github.com/saz/puppet-vim master --squash
Update subtree:
$ git subtree pull --prefix modules/postgresql https://github.com/puppetlabs/puppetlabs-postgresql.git master --squash