| Server IP : 34.87.99.72 / Your IP : 216.73.217.31 Web Server : Apache/2.4.46 (Unix) OpenSSL/1.1.1n System : Linux zlock-bitnami-lamp-prod-v2-vm 4.19.0-16-cloud-amd64 #1 SMP Debian 4.19.181-1 (2021-03-19) x86_64 User : bitnami ( 1000) PHP Version : 7.4.18 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /opt/bitnami/nami/node_modules/provisioner/lib/platform/ |
Upload File : |
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const linux_1 = require("./linux");
const utils_1 = require("../utils");
const init_system_1 = require("./init_system");
const nami_wrapper_1 = require("../nami_wrapper");
class CentosPlatform extends linux_1.LinuxPlatform {
constructor(options) {
super(options);
this.internalHosts = [];
this.platformTags.push("centos");
this.systemPackages.push("at");
}
get distro() {
return "centos";
}
cleanSystemPackages() {
utils_1.retry(() => {
nami_wrapper_1.os.runProgram("yum", ["clean", "all"], { logger: this.logger });
}, { logger: this.logger, errorMessage: "Unable to clean system packages" });
}
firstPackagesToInstall() {
// epel-release must be installed before anything else
return [
"epel-release",
];
}
installAndUpgradeSystemPackages(packages, upgrade = false) {
if (upgrade) {
utils_1.retry(() => {
nami_wrapper_1.os.runProgram("yum", ["update", "-y"], { logger: this.logger });
}, { logger: this.logger, errorMessage: "Unable to update system packages" });
}
utils_1.retry(() => {
this.installPackages(...this.firstPackagesToInstall());
this.installPackages(...packages);
}, { logger: this.logger, errorMessage: "Unable to install system packages" });
this.setupLocale();
}
installPackages(...packages) {
if (packages.length > 0) {
const result = nami_wrapper_1.os.runProgram("yum", ["install", "-y"].concat(packages), {
logger: this.logger,
retrieveStdStreams: true
});
if (result.code !== 0 ||
result.stdout && result.stdout.search(/No package .* available/i) !== -1) {
throw new Error(`Missing system packages ${result.stdout}`);
}
}
}
setupLocale() {
utils_1.retry(() => {
nami_wrapper_1.file.write("/etc/sysconfig/i18n", "LANG=\"en_US.UTF-8\"");
}, { logger: this.logger, errorMessage: "Unable to setup locale" });
}
getInitSystem() {
if (!this.initSystem) {
this.initSystem = new init_system_1.SystemDInitSystem();
}
return this.initSystem;
}
firewallCmd(args) {
return nami_wrapper_1.os.runProgram("firewall-cmd", ["--permanent"].concat(args));
}
openPorts(ports, onlyFromHosts = null) {
try {
let zone = "public";
if (onlyFromHosts != null && onlyFromHosts.length > 0) {
zone = "internal";
for (let host of onlyFromHosts) {
this.addInternalHostOnce(host);
}
}
if (ports && ports.length > 0) {
if (this.getInitSystem().isServiceStarted("firewalld")) {
this.logger.debug(`Opening application ports: ${ports}`);
for (const port of ports) {
this.logger.trace(`Opening port: ${port}`);
this.firewallCmd([`--zone=${zone}`, `--add-port=${port}/tcp`]);
}
this.logger.trace("Reloading firewall service:");
this.reloadFirewall();
}
}
this.reloadFirewall();
}
catch (e) {
this.logger.warn("Couldn't open requested ports", e);
}
}
addInternalHostOnce(host) {
if (this.internalHosts.indexOf(host) > -1) {
return;
}
// TODO: resolve hostnames to IPs addresses if hostnames are to be supported
let ip = host;
if (this.getInitSystem().isServiceStarted("firewalld")) {
this.firewallCmd(["--zone=internal", `--add-source=${ip}`]);
}
this.internalHosts.push(host);
}
_modifyPortMapping(op, srcPort, destPort) {
let fwdop = "add";
if (op === "-D") {
fwdop = "remove";
}
if (this.getInitSystem().isServiceStarted("firewalld")) {
this.firewallCmd(["--zone=public", `--${fwdop}-forward-port=port=${destPort}:proto=tcp:toport=${srcPort}`]);
}
}
reloadFirewall() {
if (this.getInitSystem().isServiceStarted("firewalld")) {
nami_wrapper_1.os.runProgram("firewall-cmd", ["--reload"]);
}
}
}
exports.CentosPlatform = CentosPlatform;