Christian Pape
7 years ago
commit
b4910dac50
10 changed files with 225 additions and 0 deletions
-
4.gitignore
-
43gns3-qemu.json
-
47gns3-vmware.json
-
36http/ks.cfg
-
3scripts/base.sh
-
3scripts/cleanup.sh
-
8scripts/grafana.sh
-
77scripts/opennms.sh
-
1scripts/vmware.sh
-
3scripts/zerodisk.sh
@ -0,0 +1,4 @@ |
|||
output-vmware-iso |
|||
output-qemu |
|||
packer_cache |
|||
.DS_Store |
@ -0,0 +1,43 @@ |
|||
{ |
|||
"variables": { |
|||
"iso_mirror": "mirror.informatik.hs-fulda.de", |
|||
"opennms_release": "stable", |
|||
"onms-version": "22.0.0-1" |
|||
}, |
|||
"builders": [ |
|||
{ |
|||
"type": "qemu", |
|||
"accelerator": "kvm", |
|||
"boot_command": [ |
|||
"<tab> text ks=http://{{ .HTTPIP }}:{{ .HTTPPort }}/ks.cfg<enter><wait>" |
|||
], |
|||
"boot_wait": "10s", |
|||
"disk_size": 20000, |
|||
"headless": true, |
|||
"http_directory": "http", |
|||
"iso_checksum": "714acc0aefb32b7d51b515e25546835e55a90da9fb00417fbee2d03a62801efd", |
|||
"iso_checksum_type": "sha256", |
|||
"iso_url": "https://{{user `iso_mirror`}}/centos/7.5.1804/isos/x86_64/CentOS-7-x86_64-Minimal-1804.iso", |
|||
"ssh_username": "root", |
|||
"ssh_password": "secret", |
|||
"ssh_port": 22, |
|||
"ssh_wait_timeout": "10000s", |
|||
"shutdown_command": "/sbin/halt -h -p" |
|||
} |
|||
], |
|||
"provisioners": [ |
|||
{ |
|||
"type": "shell", |
|||
"override": { |
|||
"vmware-iso": { |
|||
"scripts": [ |
|||
"scripts/base.sh", |
|||
"scripts/opennms.sh", |
|||
"scripts/grafana.sh", |
|||
"scripts/cleanup.sh" |
|||
] |
|||
} |
|||
} |
|||
} |
|||
] |
|||
} |
@ -0,0 +1,47 @@ |
|||
{ |
|||
"variables": { |
|||
"iso_mirror": "mirror.informatik.hs-fulda.de", |
|||
"opennms_release": "stable", |
|||
"onms-version": "22.0.0-1" |
|||
}, |
|||
"builders": [ |
|||
{ |
|||
"type": "vmware-iso", |
|||
"boot_command": [ |
|||
"<tab> text ks=http://{{ .HTTPIP }}:{{ .HTTPPort }}/ks.cfg<enter><wait>" |
|||
], |
|||
"boot_wait": "10s", |
|||
"disk_size": 20000, |
|||
"headless": true, |
|||
"http_directory": "http", |
|||
"iso_checksum": "714acc0aefb32b7d51b515e25546835e55a90da9fb00417fbee2d03a62801efd", |
|||
"iso_checksum_type": "sha256", |
|||
"iso_url": "https://{{user `iso_mirror`}}/centos/7.5.1804/isos/x86_64/CentOS-7-x86_64-Minimal-1804.iso", |
|||
"ssh_username": "root", |
|||
"ssh_password": "secret", |
|||
"ssh_port": 22, |
|||
"ssh_wait_timeout": "10000s", |
|||
"shutdown_command": "/sbin/halt -h -p", |
|||
"vmx_data_post": { |
|||
"memsize": "8192", |
|||
"numvcpus": "2" |
|||
} |
|||
} |
|||
], |
|||
"provisioners": [ |
|||
{ |
|||
"type": "shell", |
|||
"override": { |
|||
"vmware-iso": { |
|||
"scripts": [ |
|||
"scripts/base.sh", |
|||
"scripts/vmware.sh", |
|||
"scripts/opennms.sh", |
|||
"scripts/grafana.sh", |
|||
"scripts/cleanup.sh" |
|||
] |
|||
} |
|||
} |
|||
} |
|||
] |
|||
} |
@ -0,0 +1,36 @@ |
|||
install |
|||
cdrom |
|||
lang en_US.UTF-8 |
|||
keyboard us |
|||
network --onboot yes --device eth0 --bootproto dhcp --noipv6 |
|||
rootpw --plaintext secret |
|||
firewall --enabled --service=ssh |
|||
authconfig --enableshadow --passalgo=sha512 |
|||
selinux --disabled |
|||
timezone Europe/Berlin |
|||
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet" |
|||
|
|||
text |
|||
skipx |
|||
zerombr |
|||
|
|||
clearpart --all --initlabel |
|||
autopart |
|||
|
|||
auth --useshadow --enablemd5 |
|||
firstboot --disabled |
|||
reboot |
|||
|
|||
%packages --ignoremissing |
|||
@core |
|||
bzip2 |
|||
kernel-devel |
|||
kernel-headers |
|||
-ipw2100-firmware |
|||
-ipw2200-firmware |
|||
-ivtv-firmware |
|||
%end |
|||
|
|||
%post |
|||
/usr/bin/yum -y install sudo |
|||
%end |
@ -0,0 +1,3 @@ |
|||
sed -i "s/^.*requiretty/#Defaults requiretty/" /etc/sudoers |
|||
yum -y install gcc make gcc-c++ kernel-devel-`uname -r` perl |
|||
|
@ -0,0 +1,3 @@ |
|||
yum -y clean all |
|||
rm -rf /tmp/rubygems-* |
|||
|
@ -0,0 +1,8 @@ |
|||
yum install -y opennms-helm |
|||
|
|||
systemctl enable grafana-server |
|||
systemctl start grafana-server |
|||
|
|||
firewall-cmd --zone=public --permanent --add-port=3000/tcp |
|||
sleep 10 |
|||
curl 'http://admin:admin@localhost:3000/api/datasources' -X POST -H 'Content-Type:application/json;charset=UTF-8' --data-binary '{"name":"OpenNMS","type":"opennms","access":"proxy","url":"http://localhost:8980/opennms","isDefault":true,"basicAuth":true,"basicAuthUser":"admin","basicAuthPassword":"admin"}' |
@ -0,0 +1,77 @@ |
|||
# Install some tools |
|||
yum -y install net-tools wget htop iftop sysstat tcpdump vim git tar unzip psmisc |
|||
|
|||
# Additional packages |
|||
yum -y install net-snmp-utils net-snmp |
|||
yum -y install bind-utils mailx |
|||
|
|||
# Install OpenNMS repository |
|||
rpm -Uvh http://yum.opennms.org/repofiles/opennms-repo-stable-rhel7.noarch.rpm |
|||
rpm --import http://yum.opennms.org/OPENNMS-GPG-KEY |
|||
|
|||
# Install OpenNMS without any setup |
|||
yum -y install rrdtool |
|||
yum -y install opennms |
|||
yum -y install jrrd2 |
|||
yum clean all |
|||
|
|||
# Set Java |
|||
/opt/opennms/bin/runjava -s |
|||
|
|||
# Initialize PostgreSQL database |
|||
postgresql-setup initdb |
|||
|
|||
# Set authentication from ident to md5 |
|||
sed -i 's/all 127\.0\.0\.1\/32 ident/all 127.0.0.1\/32 md5/g' /var/lib/pgsql/data/pg_hba.conf |
|||
sed -i 's/all ::1\/128 ident/all ::1\/128 md5/g' /var/lib/pgsql/data/pg_hba.conf |
|||
|
|||
# Enable and start PostgreSQL with systemd |
|||
systemctl start postgresql |
|||
systemctl enable postgresql |
|||
|
|||
# Create opennms user with password and database |
|||
sudo -u postgres psql -c "CREATE USER opennms WITH PASSWORD 'opennms';" |
|||
sudo -u postgres psql -c "CREATE DATABASE opennms;" |
|||
sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE opennms to opennms;" |
|||
|
|||
# Create OpenNMS database configuration |
|||
printf '<?xml version="1.0" encoding="UTF-8"?> |
|||
<datasource-configuration> |
|||
<connection-pool factory="org.opennms.core.db.C3P0ConnectionFactory" |
|||
idleTimeout="600" |
|||
loginTimeout="3" |
|||
minPool="50" |
|||
maxPool="50" |
|||
maxSize="50" /> |
|||
|
|||
<jdbc-data-source name="opennms" |
|||
database-name="opennms" |
|||
class-name="org.postgresql.Driver" |
|||
url="jdbc:postgresql://localhost:5432/opennms" |
|||
user-name="%s" |
|||
password="%s" /> |
|||
|
|||
<jdbc-data-source name="opennms-admin" |
|||
database-name="template1" |
|||
class-name="org.postgresql.Driver" |
|||
url="jdbc:postgresql://localhost:5432/template1" |
|||
user-name="%s" |
|||
password="%s" /> |
|||
</datasource-configuration>' opennms opennms opennms opennms \ |
|||
> /opt/opennms/etc/opennms-datasources.xml |
|||
|
|||
# Initialize OpenNMS database schema |
|||
/opt/opennms/bin/install -dis |
|||
|
|||
echo "org.opennms.rrd.storeByForeignSource=true" >> /opt/opennms/etc/opennms.properties |
|||
|
|||
# Configure OpenNMS to use RRDtool |
|||
echo "org.opennms.rrd.strategyClass=org.opennms.netmgt.rrd.rrdtool.MultithreadedJniRrdStrategy" >> /opt/opennms/etc/rrd-configuration.properties |
|||
echo "org.opennms.rrd.interfaceJar=/usr/share/java/jrrd2.jar" >> /opt/opennms/etc/rrd-configuration.properties |
|||
echo "opennms.library.jrrd2=/usr/lib64/libjrrd2.so" >> /opt/opennms/etc/rrd-configuration.properties |
|||
|
|||
# Enable and start OpenNMS with systemd |
|||
systemctl start opennms |
|||
systemctl enable opennms |
|||
|
|||
firewall-cmd --zone=public --permanent --add-port=8980/tcp |
@ -0,0 +1 @@ |
|||
yum install -y fuse-libs open-vm-tools |
@ -0,0 +1,3 @@ |
|||
dd if=/dev/zero of=/EMPTY bs=1M |
|||
rm -f /EMPTY |
|||
sync |
Write
Preview
Loading…
Cancel
Save
Reference in new issue