2018-09-08 18:46:45 +02:00
|
|
|
preinstall:
|
|
|
|
# hardcoded users and groups
|
|
|
|
$(inroot) useradd --system --comment="created from appliance building - zabbix user" --home-dir="/var/lib/zabbix/home" --shell="/sbin/nologin" --no-create-home --uid 600 --user-group zabbix
|
|
|
|
# switch to hardened, build hardened toolchain, rebuild everything
|
|
|
|
mkdir -p $(CHROOT)/etc/portage/profile
|
|
|
|
echo "-hardened" >> $(CHROOT)/etc/portage/profile/use.mask
|
|
|
|
$(inroot) $(EMERGE) $(USEPKG) --oneshot gcc
|
|
|
|
$(inroot) $(EMERGE) $(USEPKG) --oneshot binutils virtual/libc
|
|
|
|
-$(gcc_config)
|
|
|
|
$(inroot) $(EMERGE) $(USEPKG) --emptytree @world
|
|
|
|
$(inroot) bash -c 'yes YES | etc-update --automode -9'
|
|
|
|
|
2020-02-19 10:41:28 +01:00
|
|
|
postinstall: base/timesyncd.conf base/firstboot.start
|
2018-09-08 18:46:45 +02:00
|
|
|
# Konfigurationen anpassen
|
2020-02-19 10:41:28 +01:00
|
|
|
cp base/timesyncd.conf $(CHROOT)/etc/systemd/timesyncd.conf
|
2018-09-08 18:46:45 +02:00
|
|
|
mkdir -p $(CHROOT)/etc/local.d
|
2020-02-19 10:41:28 +01:00
|
|
|
cp base/firstboot.start $(CHROOT)/etc/local.d/firstboot.start
|
2018-09-08 18:46:45 +02:00
|
|
|
touch $(CHROOT)/firstboot
|
|
|
|
sed -i 's/# %wheel ALL=(ALL) ALL/%wheel ALL=(ALL) ALL/' $(CHROOT)/etc/sudoers
|
2020-02-19 10:41:28 +01:00
|
|
|
$(inroot) useradd -m -G users,wheel -s /bin/bash --comment="virtual appliance admin" --uid 2000 admin
|
2018-09-08 18:46:45 +02:00
|
|
|
$(inroot) passwd -d admin; $(inroot) passwd -e admin
|
2019-07-07 14:54:23 +02:00
|
|
|
$(inroot) systemctl enable tmux@root.service
|
2020-02-19 10:41:28 +01:00
|
|
|
cp base/tmux.conf $(CHROOT)/root/.tmux.conf
|
2018-09-08 18:46:45 +02:00
|
|
|
|
|
|
|
# Beispiel feste IP-Adresse
|
2020-02-19 10:41:28 +01:00
|
|
|
cp base/00-eth0.network $(CHROOT)/00-eth0.network.example
|
2018-09-08 18:46:45 +02:00
|
|
|
|
|
|
|
# MariaDB-Konfiguration
|
2020-02-19 10:41:28 +01:00
|
|
|
sed -i "s/^character-set-server.*$$/character-set-server = utf8mb4/" $(CHROOT)/etc/mysql/mariadb.d/50-distro-server.cnf
|
|
|
|
sed -iE 's/^\(log-bin\)/#\1/' $(CHROOT)/etc/mysql/mariadb.d/50-distro-server.cnf
|
|
|
|
echo >> $(CHROOT)/etc/mysql/mariadb.d/50-distro-server.cnf
|
|
|
|
echo "# innodb tuning" >> $(CHROOT)/etc/mysql/mariadb.d/50-distro-server.cnf
|
|
|
|
echo "innodb_buffer_pool_size = 2G" >> $(CHROOT)/etc/mysql/mariadb.d/50-distro-server.cnf
|
|
|
|
echo "innodb_strict_mode = OFF" >> $(CHROOT)/etc/mysql/mariadb.d/50-distro-server.cnf
|
2018-09-08 18:46:45 +02:00
|
|
|
cp mariadb/my.cnf.root $(CHROOT)/root/.my.cnf
|
|
|
|
chmod 0600 $(CHROOT)/root/.my.cnf
|
|
|
|
rm -rf $(CHROOT)/var/lib/mysql/*
|
|
|
|
$(inroot) bash -c 'yes gentoo | emerge --config dev-db/mariadb'
|
|
|
|
|
|
|
|
# Apache-/PHP-Konfiguration
|
|
|
|
sed -i 's:APACHE2_OPTS=\":APACHE2_OPTS=\"-D PHP :' $(CHROOT)/etc/conf.d/apache2
|
|
|
|
find $(CHROOT)/etc/php/apache2-*/ -iname php.ini -print | xargs \sed -i \
|
|
|
|
-e 's:.*date.timezone =.*:date.timezone = Europe/Berlin:' \
|
|
|
|
-e 's:.*max_execution_time =.*:max_execution_time = 300:' \
|
|
|
|
-e 's:.*max_input_time =.*:max_input_time = 300:' \
|
|
|
|
-e 's:.*post_max_size =.*:post_max_size = 16M:' \
|
|
|
|
-e 's:.*always_populate_raw_post_data =.*:always_populate_raw_post_data = -1:'
|
|
|
|
$(inroot) systemctl enable apache2
|
|
|
|
|
|
|
|
# Add zabbix service definitions
|
|
|
|
echo "zabbix-agent 10050/tcp Zabbix Agent" >> $(CHROOT)/etc/services
|
|
|
|
echo "zabbix-agent 10050/udp Zabbix Agent" >> $(CHROOT)/etc/services
|
|
|
|
echo "zabbix-trapper 10051/tcp Zabbix Trapper" >> $(CHROOT)/etc/services
|
|
|
|
echo "zabbix-trapper 10051/udp Zabbix Trapper" >> $(CHROOT)/etc/services
|
|
|
|
|
|
|
|
# Install Zabbix webapp
|
2019-01-25 14:00:03 +01:00
|
|
|
$(inroot) webapp-config -h localhost -d zabbix -I zabbix `ls $(CHROOT)/usr/share/webapps/zabbix`
|
2018-09-08 18:46:45 +02:00
|
|
|
cp $(CHROOT)/var/www/localhost/htdocs/zabbix/conf/zabbix.conf.php.example $(CHROOT)/var/www/localhost/htdocs/zabbix/conf/zabbix.conf.php
|
2019-01-25 14:00:03 +01:00
|
|
|
# im Zabbix-Ebuild wird fowners und fperms vor webapp_src_install aufgerufen und deswegen wieder überschrieben
|
2020-02-19 10:41:28 +01:00
|
|
|
$(inroot) chown -R zabbix:zabbix \
|
2019-01-25 14:00:03 +01:00
|
|
|
/etc/zabbix \
|
|
|
|
/var/lib/zabbix \
|
|
|
|
/var/lib/zabbix/home \
|
|
|
|
/var/lib/zabbix/scripts \
|
|
|
|
/var/lib/zabbix/alertscripts \
|
|
|
|
/var/lib/zabbix/externalscripts \
|
|
|
|
/var/log/zabbix
|
|
|
|
chmod 0750 \
|
|
|
|
$(CHROOT)/etc/zabbix \
|
|
|
|
$(CHROOT)/var/lib/zabbix \
|
|
|
|
$(CHROOT)/var/lib/zabbix/home \
|
|
|
|
$(CHROOT)/var/lib/zabbix/scripts \
|
|
|
|
$(CHROOT)/var/lib/zabbix/alertscripts \
|
|
|
|
$(CHROOT)/var/lib/zabbix/externalscripts \
|
|
|
|
$(CHROOT)/var/log/zabbix
|
2018-09-08 18:46:45 +02:00
|
|
|
|
|
|
|
# Zabbix Agent
|
|
|
|
cp zabbix/userparameter_mysql.conf $(CHROOT)/var/lib/zabbix/userparameter_mysql.conf
|
|
|
|
|
|
|
|
# Zabbix Syslog (https://github.com/v-zhuravlev/zabbix-syslog)
|
|
|
|
mkdir -p $(CHROOT)/etc/zabbix/scripts/lib
|
|
|
|
cp zabbix/zabbix-syslog/zabbix_syslog_create_urls.pl $(CHROOT)/etc/zabbix/scripts/zabbix_syslog_create_urls.pl
|
|
|
|
cp zabbix/zabbix-syslog/zabbix_syslog_lkp_host.pl $(CHROOT)/etc/zabbix/scripts/zabbix_syslog_lkp_host.pl
|
|
|
|
cp zabbix/zabbix-syslog/zabbix_syslog.cfg $(CHROOT)/etc/zabbix/zabbix_syslog.cfg
|
|
|
|
cp zabbix/zabbix-syslog/lib/ZabbixAPI.pm $(CHROOT)/etc/zabbix/scripts/lib/ZabbixAPI.pm
|
|
|
|
cp zabbix/zabbix-syslog/70-zabbix_rsyslog.conf $(CHROOT)/etc/rsyslog.d/70-zabbix_rsyslog.conf
|
|
|
|
$(inroot)chown -R zabbix:zabbix /etc/zabbix/scripts
|
|
|
|
chmod +x $(CHROOT)/etc/zabbix/scripts/zabbix_syslog_create_urls.pl
|
|
|
|
chmod +x $(CHROOT)/etc/zabbix/scripts/zabbix_syslog_lkp_host.pl
|
|
|
|
|
|
|
|
# FPing
|
|
|
|
$(inroot)chmod u=rwsx,g=rx,o=rx /usr/sbin/fping
|
|
|
|
$(inroot)chmod u=rwsx,g=rx,o=rx /usr/sbin/fping6
|
|
|
|
|
|
|
|
# SNMP
|
|
|
|
cp snmp/snmpd.conf $(CHROOT)/etc/snmp/snmpd.conf
|
|
|
|
cp snmp/snmptrapd.conf $(CHROOT)/etc/snmp/snmptrapd.conf
|
|
|
|
cp snmp/snmptt.conf $(CHROOT)/etc/snmp/snmptt.conf
|
|
|
|
sed -i \
|
|
|
|
-e 's:net_snmp_perl_enable = 0:net_snmp_perl_enable = 1:' \
|
|
|
|
-e 's:translate_integers = 1:translate_integers = 0:' \
|
|
|
|
-e 's:#mibs_environment = ALL:mibs_environment = ALL:' \
|
|
|
|
-e 's.#date_time_format =.date_time_format = %H:%M:%S %Y/%m/%d.' \
|
|
|
|
-e 's:daemon_uid = snmptt:daemon_uid = zabbix:' \
|
|
|
|
-e 's:log_system_enable = 0:log_system_enable = 1:' \
|
|
|
|
-e 's:unknown_trap_log_enable = 0:unknown_trap_log_enable = 1:' \
|
|
|
|
$(CHROOT)/etc/snmp/snmptt.ini
|
|
|
|
mkdir -p $(CHROOT)/var/log/snmptt
|
|
|
|
$(inroot)chmod 0775 /var/log/snmptt
|
|
|
|
$(inroot)chown zabbix:zabbix /var/log/snmptt
|
|
|
|
|
|
|
|
clean:
|