Lewati ke isi

Instalasi OCS Inventory NG pada sistem operasi Linux

Persiapan

Spesifikasi

Komponen perangkat lunak

  • Apache 2.4.x
  • MariaDB-server & client 10.3.x
  • PHP 7.3.x
  • OCS Inventory Server 2.7.x

Komponen perangkat keras

Arsitektur & Topologi

Arsitektur

Ocs Inventory NG communication architecture

Topologi

image-20200514020436637

Repositori Apache, PHP, & MariaDB

Variable
MARIADB_VER="10.4"
PHP_VER="7.4"
yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm && \
yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm && \
curl -LsS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | \
    bash -s -- --mariadb-server-version="mariadb-$MARIADB_VER" && \
yum update -y
yum install -y yum-utils
dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm && \
dnf install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm && \
curl -LsS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | \
    bash -s -- --mariadb-server-version="mariadb-$MARIADB_VER" && \
dnf update -y
dnf install -y yum-utils
apt-get update && \
apt-get -y install apt-transport-https lsb-release ca-certificates curl \
    software-properties-common && \
add-apt-repository -y ppa:ondrej/apache2 && \
add-apt-repository -y ppa:ondrej/php && \
curl -LsS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | \
    bash -s -- --mariadb-server-version="mariadb-$MARIADB_VER" && \
apt-get update

Instalasi MariaDB, Apache, & PHP

MariaDB

dnf instal -y mariadb-server
mysql_secure_installation
mysqladmin -u root -p version
mysql -u root -p
CREATE DATABASE ocsweb;
CREATE USER 'ocs'@'localhost' IDENTIFIED BY 'ocs';
GRANT ALL PRIVILEGES ON ocsweb.* TO 'ocs'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;

Apache2

yum install -y httpd
systemctl enable --now httpd
dnf install -y httpd
systemctl enable --now httpd
# PERL Requirements
apt-get install libxml-simple-perl libdbi-perl libdbd-mysql-perl libapache-dbi-perl libnet-ip-perl libsoap-lite-perl libarchive-zip-perl make build-essential
apt-get install -y apache2
Hardening
cp /etc/httpd/conf/httpd.conf{,.`date +"%Y%m%d%H%M"`}
cat << EOF >> /etc/httpd/conf/httpd.conf

ServerTokens Prod
ServerSignature Off
EOF

PHP

yum-config-manager --enable remi
yum install -y php:remi-$PHP_VER
yum-config-manager --enable remi
dnf module reset php
dnf module install -y php:remi-$PHP_VER
cp /etc/php.ini{,.`date +"%Y%m%d%H%M"`}
# sed -i 's/max_execution_time =.*/max_execution_time = -1/g' /etc/php.ini
# sed -i 's/max_input_time =.*/max_input_time = -1/g' /etc/php.ini
sed -i 's/max_execution_time =.*/max_execution_time = 120/g' /etc/php.ini
sed -i 's/max_input_time =.*/max_input_time = 240/g' /etc/php.ini
sed -i 's/memory_limit =.*/memory_limit = 512M/g' /etc/php.ini
sed -i 's/post_max_size =.*/post_max_size = 201M/g' /etc/php.ini
sed -i 's/upload_max_filesize =.*/upload_max_filesize = 200M/g' /etc/php.ini
sed -i 's/expose_php =.*/expose_php = Off/g' /etc/php.ini
systemctl restart httpd

Peladen pangkalan data

Saat menggunakan instalasi peladen basis data terpisah, perlu membuat database dan pengguna

CREATE DATABASE ocsweb;
CREATE USER 'ocs'@'CommunicationServerIP' IDENTIFIED BY 'ocs';
CREATE USER 'ocs'@'AdministrationConsoleIP' IDENTIFIED BY 'ocs';
GRANT ALL PRIVILEGES ON ocsweb.* TO 'ocs'@'CommunicationServerIP' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON ocsweb.* TO 'ocs'@'AdministrationConsoleIP' WITH GRANT OPTION;
FLUSH PRIVILEGES;

Proses

Instalasi OCS Inventory

wget https://rpm.ocsinventory-ng.org/ocsinventory-release-latest.el7.ocs.noarch.rpm
yum-config-manager --enable remi
yum-config-manager --enable remi-php73
yum install -y ocsinventory
wget https://rpm.ocsinventory-ng.org/ocsinventory-release-latest.el8.ocs.noarch.rpm
dnf install -y ocsinventory-release-latest.el8.ocs.noarch.rpm
dnf install -y --enablerepo=powertools ocsinventory

ocsinventory-server.conf

Variabel
BERKAS_OCS_CONF="/etc/httpd/conf.d/ocsinventory-server.conf"
BERKAS_OCSDB_CONF="/usr/share/ocsinventory-reports/ocsreports/dbconfig.inc.php"
BERKAS_OCS_CONF="/etc/apache2/conf.d/ocsinventory-server.conf"
OCS_DB_HOST="localhost"
OCS_DB_PORT="3306"
OCS_DB_NAME="ocsweb"
OCS_DB_LOCAL="ocsweb"
OCS_DB_USER="ocs"
OCS_DB_PWD="ocs"
cp $BERKAS_OCS_CONF{,.`date +"%Y%m%d"`}
sed -i 's/OCS_DB_HOST.*/OCS_DB_HOST '$OCS_DB_HOST'/g' $BERKAS_OCS_CONF
sed -i 's/OCS_DB_PORT.*/OCS_DB_PORT '$OCS_DB_PORT'/g' $BERKAS_OCS_CONF
sed -i 's/OCS_DB_NAME.*/OCS_DB_NAME '$OCS_DB_NAME'/g' $BERKAS_OCS_CONF
sed -i 's/OCS_DB_LOCAL.*/OCS_DB_LOCAL '$OCS_DB_LOCAL'/g' $BERKAS_OCS_CONF
sed -i 's/OCS_DB_USER.*/OCS_DB_USER '$OCS_DB_USER'/g' $BERKAS_OCS_CONF
sed -i 's/OCS_DB_PWD.*/OCS_DB_PWD '$OCS_DB_PWD'/g' $BERKAS_OCS_CONF
systemctl restart httpd
cp $BERKAS_OCSDB_CONF{,.`date +"%Y%m%d"`}
cat << EOF > $BERKAS_OCSDB_CONF
<?php
define("DB_NAME", "$OCS_DB_NAME");
define("SERVER_READ","$OCS_DB_HOST");
define("SERVER_WRITE","$OCS_DB_HOST");
define("SERVER_PORT", "$OCS_DB_PORT");
define("COMPTE_BASE","$OCS_DB_NAME");
define("PSWD_BASE","$OCS_DB_PWD");
define("ENABLE_SSL","0");
define("SSL_MODE","SSL_MODE_PREFERRED");
//define("SSL_KEY","/path/to/client-key.pem");
//define("SSL_CERT","/path/to/client-cert.pem");
//define("CA_CERT","/etc/ssl/certs/ca-certificate.crt");
?>
EOF

Buka laman $FQDN/ocsreports/install.php setelah melakukan perubahan konfigurasi basis data, lalu isikan parameter koneksi ke panggalakan data untuk finaliasi perubahan.

SELinux

Firewall

FirewallD

systemctl stop firewalld
systemctl disable firewalld

Penyelesaian

Instalasi manual

Peladen Administrasi

dnf install -y httpd \
  perl-XML-Simple \
  perl-DBI \
  perl-DBD-MySQL \
  perl-Net-IP \
  php-gd

Peladen Komunikasi

yum install -y httpd \
  perl-XML-Simple \
  perl-Compress-Zlib \
  perl-DBI \
  perl-DBD-MySQL \
  perl-Net-IP \
  perl-SOAP-Lite \
  perl-Archive-Zip \
  perl-Mojolicious \
  perl-Plack \
  perl-XML-Entities \
  perl-Switch