#!/bin/bash # Comprobar que las variables de entorno están definidas if [[ -z "$IP_MAQUINA" || -z "$OPENSEARCH_INITIAL_ADMIN_PASSWORD" ]]; then echo "ERROR: Las variables de entorno IP_MAQUINA y OPENSEARCH_INITIAL_ADMIN_PASSWORD deben estar definidas." exit 1 fi # Validar la contraseña cumple con los requisitos if [[ ${#OPENSEARCH_INITIAL_ADMIN_PASSWORD} -lt 12 || ! "$OPENSEARCH_INITIAL_ADMIN_PASSWORD" =~ [A-Z] || ! "$OPENSEARCH_INITIAL_ADMIN_PASSWORD" =~ [0-9] || ! "$OPENSEARCH_INITIAL_ADMIN_PASSWORD" =~ [^a-zA-Z0-9] ]]; then echo "ERROR: La contraseña OPENSEARCH_INITIAL_ADMIN_PASSWORD no cumple con los requisitos:" echo "- Mínimo 12 caracteres." echo "- Al menos una mayúscula, un número y un carácter especial." exit 1 fi # Actualizar /etc/hosts con los nombres de dominio cat >>/etc/hosts < /etc/apt/sources.list.d/opensearch-2.x.list echo "deb [signed-by=/usr/share/keyrings/opensearch-keyring] https://artifacts.opensearch.org/releases/bundle/opensearch-dashboards/2.x/apt stable main" > /etc/apt/sources.list.d/opensearch-dashboards-2.x.list apt-get update apt-get install -y opensearch opensearch-dashboards # Configurar OpenSearch con los certificados y la IP cp CA/certs/ca.crt.pem /etc/opensearch/ cp CA/certs/oglog-os.mytld.crt.pem /etc/opensearch/ cp CA/private/oglog-os.mytld.key.nopass.pem /etc/opensearch/oglog-os.mytld.key.pem chown opensearch:opensearch /etc/opensearch/{ca.crt.pem,oglog-os.mytld.crt.pem,oglog-os.mytld.key.pem} cp CA/certs/oglog-osdb.mytld.crt.pem /etc/opensearch-dashboards/ cp CA/private/oglog-osdb.mytld.key.nopass.pem /etc/opensearch-dashboards/oglog-osdb.mytld.key.pem chown opensearch-dashboards:opensearch-dashboards /etc/opensearch-dashboards/oglog-osdb.mytld.crt.pem /etc/opensearch-dashboards/oglog-osdb.key.pem sed -i -e '/^plugins.security.ssl.http.pemcert_filepath:/ s/: .*/: oglog-os.mytld.crt.pem/' /etc/opensearch/opensearch.yml sed -i -e '/^plugins.security.ssl.http.pemkey_filepath:/ s/: .*/: oglog-os.mytld.key.pem/' /etc/opensearch/opensearch.yml sed -i -e '/^plugins.security.ssl.http.pemtrustedcas_filepath:/s/: .*/: ca.crt.pem/' /etc/opensearch/opensearch.yml sed -i -e '/^#network.host/ s/.*/network.host: '"$IP_MAQUINA"'/' /etc/opensearch/opensearch.yml cat >>/etc/opensearch/opensearch.yml </etc/opensearch-dashboards/opensearch_dashboards.yml <>/etc/prometheus/prometheus.yml </etc/prometheus/web-config.yml </etc/journalbeat/journalbeat.yml </etc/apt/keyrings/grafana.gpg echo "deb [signed-by=/etc/apt/keyrings/grafana.gpg] https://apt.grafana.com stable main" >/etc/apt/sources.list.d/grafana.list apt-get update apt-get install --yes grafana cp CA/certs/oglog-graf.mytld.crt.pem /etc/grafana/ cp CA/private/oglog-graf.mytld.key.nopass.pem /etc/grafana/oglog-graf.mytld.key.pem chown grafana:grafana /etc/grafana/oglog-graf.mytld.crt.pem /etc/grafana/oglog-graf.mytld.key.pem cp -a /etc/grafana/grafana.ini /etc/grafana/grafana.ini.dist cat >/etc/grafana/grafana.ini <