martes, 12 de agosto de 2025

script Post Leapp

 #!/bin/ksh


LOGFILE="/var/log/postleap_firewalld_check.log"

DATE=$(date "+%Y-%m-%d %H:%M:%S")


echo "[$DATE] --- Inicio del chequeo post-Leapp FirewallD ---" | tee -a $LOGFILE


# 1. Verificar si firewalld está activo

if systemctl is-active --quiet firewalld; then

    echo "✅ firewalld está activo." | tee -a $LOGFILE

else

    echo "⚠️  firewalld está inactivo. Se recomienda activarlo si se requiere protección a nivel red." | tee -a $LOGFILE

    read -p "¿Deseás activarlo ahora? (s/n): " ACTIVATE_FW

    if [[ "$ACTIVATE_FW" == "s" ]]; then

        systemctl enable --now firewalld

        echo "🔥 firewalld activado." | tee -a $LOGFILE

    else

        echo "⚠️  Se continúa con firewalld desactivado." | tee -a $LOGFILE

        exit 0

    fi

fi


# 2. Obtener puertos en uso por procesos (TCP y UDP)

echo "\n🔍 Buscando puertos en escucha por procesos..." | tee -a $LOGFILE

LISTEN_PORTS=$(ss -tuln | awk '/LISTEN|UNCONN/ && $5 ~ /[0-9]+$/ {split($5,a,":"); print a[length(a)]"/"$1}' | sort -u)


# 3. Obtener puertos y servicios habilitados por firewalld (zona default)

DEFAULT_ZONE=$(firewall-cmd --get-default-zone)

OPEN_PORTS=$(firewall-cmd --zone=$DEFAULT_ZONE --list-ports)

OPEN_SERVICES=$(firewall-cmd --zone=$DEFAULT_ZONE --list-services)


# 4. Comparar puertos en uso vs habilitados (incluye servicios)

echo "\n📊 Comparando puertos en uso vs habilitados en firewalld..." | tee -a $LOGFILE

PORTS_TO_ADD=""


for PORT_PROTO in $LISTEN_PORTS; do

    PORT_NUM=$(echo "$PORT_PROTO" | cut -d'/' -f1)

    PROTO=$(echo "$PORT_PROTO" | cut -d'/' -f2 | tr 'A-Z' 'a-z')


    # Chequear si el puerto está habilitado explícitamente

    echo "$OPEN_PORTS" | grep -qw "${PORT_NUM}/${PROTO}"

    if [[ $? -eq 0 ]]; then

        continue

    fi


    # Chequear si el puerto está cubierto por un servicio

    SERVICE_MATCH=0

    for SVC in $OPEN_SERVICES; do

        PORTS_SVC=$(firewall-cmd --info-service=$SVC | grep ports: | awk '{print $2}')

        echo "$PORTS_SVC" | grep -qw "${PORT_NUM}/${PROTO}" && SERVICE_MATCH=1

    done


    if [[ $SERVICE_MATCH -eq 0 ]]; then

        echo "⚠️  Puerto $PORT_NUM/$PROTO está en uso pero NO habilitado en firewalld." | tee -a $LOGFILE

        PORTS_TO_ADD="$PORTS_TO_ADD ${PORT_NUM}/${PROTO}"

    fi

done


# 5. Ofrecer agregar automáticamente los puertos detectados

if [[ -n "$PORTS_TO_ADD" ]]; then

    echo "\n🛡️  Los siguientes puertos están en uso pero no habilitados: $PORTS_TO_ADD" | tee -a $LOGFILE

    read -p "¿Querés habilitarlos automáticamente en firewalld? (s/n): " ADD_PORTS

    if [[ "$ADD_PORTS" == "s" ]]; then

        for P in $PORTS_TO_ADD; do

            firewall-cmd --zone=$DEFAULT_ZONE --permanent --add-port=$P

            echo "✅ Puerto $P habilitado." | tee -a $LOGFILE

        done

        firewall-cmd --reload

        echo "🔄 firewalld recargado con los nuevos puertos." | tee -a $LOGFILE

    else

        echo "📝 No se agregaron los puertos. Revisalos manualmente." | tee -a $LOGFILE

    fi

else

    echo "✅ Todos los puertos en uso están habilitados en firewalld o cubiertos por un servicio." | tee -a $LOGFILE

fi


# 6. Chequear servicios en estado failed

echo "\n🔍 Verificando servicios en estado FAILED..." | tee -a $LOGFILE

FAILED_SERVICES=$(systemctl -l -t service --state=failed | grep -v "0 loaded units" | grep -v "LOAD" | grep -v "UNIT")

if [[ -n "$FAILED_SERVICES" ]]; then

    echo "⚠️  Servicios en estado failed detectados:" | tee -a $LOGFILE

    echo "$FAILED_SERVICES" | tee -a $LOGFILE

else

    echo "✅ No hay servicios en estado failed." | tee -a $LOGFILE

fi


# 7. Chequear variables NEXUS

echo "\n🔍 Verificando variables de entorno NEXUS_*..." | tee -a $LOGFILE

NEXUS_VARS=$(env | grep -i ^NEXUS_)


if [[ -n "$NEXUS_VARS" ]]; then

    echo "✅ Variables NEXUS detectadas:" | tee -a $LOGFILE

    echo "$NEXUS_VARS" | tee -a $LOGFILE

else

    echo "⚠️  No se encontraron variables NEXUS_* en el entorno." | tee -a $LOGFILE

fi


echo "✅ Revisión finalizada. Verificá el log: $LOGFILE"


viernes, 8 de agosto de 2025

auditoria puntual por hora

 ---

- name: Auditoría forense con CSV consolidado y legible

  hosts: all

  gather_facts: false


  vars:

    fecha_inicio: "2025-08-01 21:00:00"

    fecha_fin: "2025-08-02 02:30:00"


  tasks:

    - name: Obtener hostname

      command: hostname

      register: hostname


    - name: Obtener historial de root

      shell: |

        cat /root/.bash_history 2>/dev/null | grep -Ei 'rm|unlink|mv|truncate'

      register: root_history

      ignore_errors: true


    - name: Obtener historial de ansible

      shell: |

        cat /home/ansible/.bash_history 2>/dev/null | grep -Ei 'rm|unlink|mv|truncate'

      register: ansible_history

      ignore_errors: true


    - name: Buscar uso de sudo por ansible en ventana temporal

      shell: |

        awk '

          BEGIN {

            start = mktime("2025 08 01 21 00 00")

            end = mktime("2025 08 02 02 30 00")

          }

          {

            cmd = "date -d \""$1" "$2" "$3" "$4"\" +%s"

            cmd | getline t

            close(cmd)

            if (t >= start && t <= end) print $0

          }

        ' /var/log/secure | grep 'sudo'

      register: sudo_usage

      ignore_errors: true


    - name: Verificar si auditd está instalado

      shell: rpm -q audit

      register: auditd_installed

      ignore_errors: true


    - name: Buscar comandos sospechosos con auditd

      when: auditd_installed.rc == 0

      shell: |

        ausearch -x rm -x unlink -x rmdir -ts "{{ fecha_inicio }}" -te "{{ fecha_fin }}"

      register: audit_logs

      ignore_errors: true


    - name: Preparar línea CSV por host (con campos entre comillas dobles)

      set_fact:

        audit_line: |

          "{{ hostname.stdout }}","{{ root_history.stdout | default('') | replace('\n', ' | ') }}","{{ ansible_history.stdout | default('') | replace('\n', ' | ') }}","{{ sudo_usage.stdout | default('') | replace('\n', ' | ') }}","{{ audit_logs.stdout | default('') | replace('\n', ' | ') }}"


    - name: Agregar cabecera si no existe (solo una vez)

      local_action:

        module: lineinfile

        path: ./auditoria_resultados.csv

        line: '"Hostname","Root History","Ansible History","Sudo Usage","Auditd Events"'

        create: yes

        insertafter: BOF

      delegate_to: localhost

      run_once: true


    - name: Agregar línea por host al CSV

      local_action:

        module: lineinfile

        path: ./auditoria_resultados.csv

        line: "{{ audit_line }}"

        create: yes

        insertafter: EOF

      delegate_to: localhost


viernes, 11 de julio de 2025

Check List , instalacion y configuracion cluster PaceMaker con SAP netweaver en Vmware

 # ✅ Checklist - SAP NetWeaver HA Cluster en RHEL 8.10 con NFS + VMware


## 🖥️ Etapa 0 - Preparativos en vCenter

### 👤 Usuario de vCenter para STONITH (fence_vmware_soap)

- [ ] Crear un usuario dedicado en vCenter (ej: `svc-cluster-fence`)
- [ ] Asignar permisos mínimos requeridos sobre las VMs del clúster:

  | Permiso vCenter                     | Requerido |
  |-------------------------------------|-----------|
  | `VirtualMachine.Interact.PowerOff` | ✅        |
  | `VirtualMachine.Interact.PowerOn`  | ✅        |
  | `VirtualMachine.Config.Query`      | ✅        |
  | `VirtualMachine.Config.Settings`   | ✅        |
  | `VirtualMachine.Inventory`         | ✅        |
  | `System.Read`                      | ✅        |

- [ ] Asignar rol personalizado o usar el rol "Virtual Machine User"
- [ ] Aplicar los permisos al nivel de Datacenter, carpeta o VMs

### ⚙️ Reglas y ajustes de DRS/HA

- [ ] Crear regla de anti-afinidad entre nodos del clúster (ASCS y ERS)
- [ ] Deshabilitar DRS automático para las VMs del clúster (recomendado:
manual o parcialmente automatizado)
- [ ] Deshabilitar snapshot o backup con freeze en VMs SAP productivas

---

## 🧾 Etapa 1 - Requisitos previos y sistema base

- [ ] Verificar que ambas VMs estén creadas y con recursos suficientes
(RAM, CPU, disco)  # ambos
- [ ] Establecer IP fija y hostname FQDN en cada nodo  # ambos
- [ ] Validar conectividad entre nodos (`ping`, `ssh`, resolución DNS)  # ambos
- [ ] Configurar NTP o `chronyd` sincronizado  # ambos
- [ ] Registrar ambos nodos a Red Hat Subscription Manager  # ambos
  ```bash
  subscription-manager register
  subscription-manager attach --auto
  ```

---

## 📦 Etapa 2 - Habilitar repositorios y paquetes necesarios

- [ ] Habilitar los repos oficiales  # ambos
  ```bash
  subscription-manager repos --enable=rhel-8-for-x86_64-baseos-rpms \
                             --enable=rhel-8-for-x86_64-appstream-rpms \
                             --enable=rhel-8-for-x86_64-sap-netweaver-rpms \
                             --enable=rhel-8-for-x86_64-sap-solutions-rpms \
                             --enable=rhel-8-for-x86_64-highavailability-rpms
  ```

- [ ] Instalar paquetes base  # ambos
  ```bash
  dnf install -y pcs pacemaker fence-agents-all \
    resource-agents-sap resource-agents-sap-hana \
    tuned-profiles-sap sap-cluster-connector
  ```

---

## 🔐 Etapa 3 - Configurar usuario hacluster y PCS

- [ ] Verificar que el usuario `hacluster` fue creado automáticamente por la
instalación del paquete `pcs`  # ambos
- [ ] Establecer contraseña al usuario `hacluster`  # ambos
  ```bash
  passwd hacluster
  ```

- [ ] Habilitar e iniciar `pcsd`  # ambos
  ```bash
  systemctl enable --now pcsd
  ```

- [ ] Autenticar ambos nodos con `pcs`  # nodo1
  ```bash
  pcs cluster auth nodo1 nodo2 -u hacluster -p TU_CLAVE
  ```

---

## ⚙️ Etapa 4 - Crear y arrancar clúster básico

- [ ] Crear el clúster  # nodo1
  ```bash
  pcs cluster setup --name sap_ha_cluster nodo1 nodo2
  pcs cluster start --all
  pcs cluster enable --all
  ```

- [ ] Deshabilitar quorum sólo si estás en pruebas  # nodo1
  ```bash
  pcs property set no-quorum-policy=freeze
  ```

---

## 🔌 Etapa 5 - Configurar STONITH con VMware

- [ ] Instalar agentes si faltan  # ambos
  ```bash
  dnf install -y fence-agents-vmware
  ```

- [ ] Crear recurso STONITH para cada nodo  # nodo1
  ```bash
  pcs stonith create fence_vm1 fence_vmware_soap \
    ip="vcenter.example.com" login="user" passwd="pass" \
    ssl=1 port="VM-NAME" pcmk_host_list="nodo1"

  pcs stonith create fence_vm2 fence_vmware_soap \
    ip="vcenter.example.com" login="user" passwd="pass" \
    ssl=1 port="VM-NAME" pcmk_host_list="nodo2"
  ```

---

## 📁 Etapa 6 - Recursos compartidos por NFS

- [ ] Validar que el servidor NFS esté en HA (recomendado)  # N/A
- [ ] Verificar que los directorios como
`/sapmnt`, `/usr/sap/trans` estén exportados  # ambos
- [ ] Crear recursos NFS  # nodo1
  ```bash
  pcs resource create sapmnt Filesystem \
    device="nfs-server:/export/sapmnt" \
    directory="/sapmnt" fstype=nfs4 \
    options="hard,intr,nfsvers=4.1,_netdev" \
    op monitor interval=30s timeout=60s
  ```

---

## 🧠 Etapa 7 - Recursos SAPInstance

- [ ] Crear recurso ASCS  # nodo1
  ```bash
  pcs resource create sap_ascs SAPInstance \
    InstanceName=SAP_ASCS00_<SID> \
    StartProfile="/usr/sap/<SID>/SYS/profile/START_ASCS00_<HOST>" \
    AUTOMATIC_RECOVER=false \
    op monitor interval=60s timeout=60s on-fail=restart
  ```

- [ ] Crear recurso ERS  # nodo1
  ```bash
  pcs resource create sap_ers SAPInstance \
    InstanceName=SAP_ERS10_<SID> \
    StartProfile="/usr/sap/<SID>/SYS/profile/START_ERS10_<HOST>" \
    AUTOMATIC_RECOVER=false \
    op monitor interval=60s timeout=60s on-fail=restart
  ```

---

## 🔄 Etapa 8 - Agrupamiento, orden y colocación

- [ ] Crear grupo de recursos  # nodo1
  ```bash
  pcs resource group add sap_group sapmnt sap_ascs
  ```

- [ ] Colocar ERS separado de ASCS  # nodo1
  ```bash
  pcs constraint colocation add sap_ers with sap_ascs -inf: same-node=false
  ```

- [ ] Preferencias de ubicación  # nodo1
  ```bash
  pcs constraint location sap_ascs prefers nodo1=50
  pcs constraint location sap_ers prefers nodo2=50
  ```

---

## 🧪 Etapa 9 - Validación

- [ ] Verificar estado general  # cualquier nodo
  ```bash
  pcs status
  crm_mon -1
  ```

- [ ] Probar failover  # nodo1
  ```bash
  pcs resource move sap_ascs nodo2
  pcs resource clear sap_ascs
  ```

- [ ] Validar logs: `/var/log/pacemaker.log`, `/var/log/messages`,
y SAP `/usr/sap/<SID>/ASCS00/work/dev_*`  # ambos

---

## 🧷 Extras opcionales

- [ ] Aplicar profile de tuning para SAP  # ambos
  ```bash
  tuned-adm profile sap-netweaver
  ```

- [ ] Documentar todos los pasos y respaldar configuración  # nodo1
  ```bash
  pcs config show > cluster-config-backup.txt
  ```
Notas importante :
El recurso SAP_ERS (Enqueue Replication Server) es fundamental en entornos SAP HA,
especialmente para proteger la cola de bloqueo (Enqueue Server) y asegurar que el
sistema pueda conmutar sin pérdida de locks críticos.

✅ Qué debes configurar en el recurso SAP_ERS

📌 Prerrequisitos

  1. El software SAP (ERS) debe estar instalado en ambos nodos.

  2. El ERS se ejecuta como un instance number, típicamente algo como ERS## (ej. ERS20).

  3. El usuario sapadm o el correspondiente de la SID debe existir.

  4. El clúster debe tener acceso completo al filesystem compartido, si aplica.

🧩 Recurso tipo: ocf:heartbeat:SAPInstance

El recurso SAP_ERS se configura con el mismo agente OCF que se usa para una

instancia SAP (SAPInstance), pero apuntando a la instancia de tipo ERS.

pcs resource create SAP_ERS ocf:heartbeat:SAPInstance \ SID=PRD \ InstanceName=ERS20_prdadm \ START_PROFILE="/usr/sap/PRD/SYS/profile/START_ERS20_hostanme" \ AUTOMATIC_RECOVER=false \ op monitor interval=60s timeout=60s \ op start timeout=600s \ op stop timeout=600s \ meta resource-stickiness=1000 \ meta priority=10 \ --group sap_ers_group

⚠️ Ajustá SID, InstanceName, START_PROFILE, y el group según tu entorno

Parametros explicados

Parámetro Descripción
SID=PRD El System ID de tu entorno SAP.
InstanceName=ERS20_prdadm ERS20 es el número de instancia, seguido del usuario del sistema SAP (prdadm).
START_PROFILE Ruta al perfil de arranque del ERS. Podés encontrarlo en /usr/sap/<SID>/SYS/profile/.
AUTOMATIC_RECOVER=false Es importante dejar esto en false en ERS.
monitor, start, stop Opciones de tiempo de espera (modificables según tus tiempos).
resource-stickiness Qué tanto se "pega" el recurso al nodo actual.
priority=10 Ayuda al cluster a decidir prioridades en failovers.
--group (Opcional) lo podés incluir dentro de un grupo si lo vas a manejar junto a otros recursos como IP virtual, file system, etc.





lunes, 1 de abril de 2024

Recuperar root si fue eliminado del /etc/passwd y del /etc/shadow en Redhat 5

Bootear en Single User

Cuando aparece la pantalla de booteo, con el grub, presionar la tecla "e" dos veces


 

 

 

 

 

 

 

 

 

 

 

 

 

Seleccionar la 2da linea y presionar la tecla "e" nuevamente 

 



 

 

 

 

 

 

 

 

 

 

 

 

Tipeo la letra "a" espacio en blanco y el numero "1" y luego presiono enter


 

Por ultimo presiono la letra "b" de boot







Comienza a Bootear








Finalmente bootea en Single User





Lo siguiente a realizar es editar el /etc/passwd y agregarle en la primer linea, lo siguiente:

root:x:0:0:root:/root:/bin/bash







Luego edito el /etc/shadow, y en la primer linea, agrego lo siguiente:


root:*::0:99999:7:::

 




Ahora, le agrego al usuario root la clave que yo quiera
passwd root





Si tenia el Selinux habilitado, debo ejecutar un paso mas, que es el siguiente


touch /.autorelabel


 

 

 por ultimo darle reboot


 

domingo, 17 de marzo de 2024

Archivos borrados no liberados ( lsof | grep deleted)

 

No liberaba espacio en el /home y el du -sh /home me mostraba que habia solo 1.8gb ocupado.

[root@p home]# df -h .
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup00-lv_home
                      7.8G  6.5G  877M  89% /home
[root@ home]# 
[root@p home]# /usr/sbin/lsof | grep deleted
java       1570  x001187    1w      REG            253,105          292     525209 /var/log/ambari-server/ambari-server.out (deleted)
java       1570  x001187    2w      REG            253,105          292     525209 /var/log/ambari-server/ambari-server.out (deleted)
java       1570  x001187  131w      REG            253,105        10837     524293 /var/log/ambari-server/ambari-eclipselink.log (deleted)
sas       11849  x001186    4u      REG            253,104      1656927       1008 /tmp/sctEpm73H (deleted)
sas       11849  x001186   49uW     REG            253,103   5096518424     130491 /home/x001186/PR_CONV_PuntScore.lst (deleted)
elssrv    11892     root    3w      REG            253,104            0       1000 /tmp/edscan.lck (deleted)
elssrv    11892     root    4u      REG            253,104      1656927       1008 /tmp/sctEpm73H (deleted)

Una busqueda mas fina , directamente sobre el fs /home

[root@ home]# /usr/sbin/lsof | grep deleted |grep home
sas       11849  x001186   49uW     REG            253,103   5103541064     130491 /home/x001186/PR_CONV_PuntScore.lst (deleted)
[root@phome]# ps -ef|grep 11849
root      8908 14726  0 10:34 pts/15   00:00:00 grep 11849
x001186  11849 11844 97 Feb19 ?        2-05:58:59 /sasbin94/SASHome/SASFoundation/9.4/sasexe/sas /sasFiles/PANA/bin/Jobs/PR_CONV_PuntScore.sas -log /sasFiles/PANA/bin/Logs/PR_CONV_PuntScore_190220_0322.log -autoexec /sasFiles/PANA/bin/Parametros/appserver_autoexec.sas
root     11892 11849  0 Feb19 ?        00:00:00 sasels  14 11 15 2 49589
[root@ home]#

Si quiero saber el tamaño total en Bloques, de los archivos borrados en el filesystem /home

[root@ home]# lsof -Fn -Fs |grep -B1 -i deleted | grep ^s  | cut -c 2- | awk '{s+=$1} END {print s}'
5494756694
[root@ home]# 

Ya identificamos el proceso que quedo estaba ejecutandose y cuanto ocupaba, ahora vamos a liberar ese espacio.

[root@home]# /usr/sbin/lsof | grep deleted |grep /home
sas       11849  x001186   49uW     REG            253,103   5119778048     130491 /home/x001186/PR_CONV_PuntScore.lst (deleted)
[root@ home]#
[root@home]# df -h .
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup00-lv_home
                      7.8G  5.4G  2.1G  73% /home
[root@ home]# file /proc/11849/fd/49
/home/x001186/PR_CONV_PuntScore.lst (deleted)
[root@ home]#  echo > /proc/11849/fd/49
[root@ home]# df -h .
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup00-lv_home
                      7.8G  542M  6.9  3% /home
[root@ home]#

Restoreando desde cero

 Este fue un caso de restore distinto a lo habitual. En principio la idea era desarmar un cluster y como los discos estaban compartidos no me dejaba clonarlo (porque no los puede bloquear para tomar un snapshot). Por eso hice un backup y un restore con nuestro viejo servidor de backup 

 

Primero voy a armar el tema de los comandos utilizados y despues tratare de emprolijar el posteo.

Lo primero que hago es crear en el vcenter una maquina virtual con la cantidad de procesadores, memoria y disco que necesite. En este caso fue 32g RAM, 6Vcpus un par de discos de 100gb y un par de placas de red la que usamos es la de la vlan22. Creada la maquina fuerzo que en el primer booteo vaya a bios setup. Le attacho via iso una iso de redhat y boteo en recovery sin configurar red ni montar nada hasta que me dropea a una shell.

blkid # Con esto puedo ver los discos mas prolijo

# Creo las particiones en sda (la del /boot y la del VolGroup00)
fdisk /dev/sda

# Chequeo que haya creado sda1 y sda2 sino hago partprobe /dev/sda
ls -tlra /dev/sd*

# Creo el / y lo monto
mkfs.ext4 /dev/sda1
tune2fs -i 0 /dev/sda1
tune2fs -c 0 /dev/sda1
mkdir /a
mount /dev/VolGroup00/lv_root /a

# Creo todos los demas
vgcreate VolGroup00 /dev/sda2
lvcreate -n lv_home -L2g VolGroup00
lvcreate -n lv_root -L20g VolGroup00
lvcreate -n lv_swap -L8g VolGroup00
lvcreate -n lv_tmp -L2g VolGroup00
lvcreate -n lv_usr -L4g VolGroup00
lvcreate -n lv_var -L20g VolGroup00

# Creo aca el disco del vg de datos
fdisk -l
fdisk /dev/sdb
vgcreate vg_store /dev/sdb1
lvcreate -n lv_store -l100%FREE vg_store

# Hago todo el resto de filesystems
mkfs.ext4 /dev/VolGroup00/lv_home
mkfs.ext4 /dev/VolGroup00/lv_root
mkfs.ext4 /dev/VolGroup00/lv_tmp
mkfs.ext4 /dev/VolGroup00/lv_usr
mkfs.ext4 /dev/VolGroup00/lv_var
mkfs.ext4 /dev/vg_store/lv_store
tune2fs -i0 -c0 /dev/VolGroup00/lv_home
tune2fs -i0 -c0 /dev/VolGroup00/lv_root
tune2fs -i0 -c0 /dev/VolGroup00/lv_tmp
tune2fs -i0 -c0 /dev/VolGroup00/lv_usr
tune2fs -i0 -c0 /dev/VolGroup00/lv_var
tune2fs -i0 -c0 /dev/VolGroup00/lv_store
tune2fs -i0 -c0 /dev/vg_store/lv_store

# Configuro la red
ifconfig eth0 192.168.214.57 netmask 255.255.255.0 up
route add default gw 192.168.214.1

# Restoreo el barra
cd /a
ssh -l root 192.168.201.20 cat /backupsos/smtp-app-db-01/smtp-app-db-01.root.dump.20190928.gz | gzip -dc | restore -rf -

# Ya creados los puntos de montaje puedo montar todo el resto
mount /dev/sda1 /a/boot
mount /dev/VolGroup00/lv_home /a/home
mount /dev/VolGroup00/lv_tmp /a/tmp
mount /dev/VolGroup00/lv_usr /a/usr
mount /dev/VolGroup00/lv_var /a/var
mount /dev/vg_store/lv_store /a/store/

# Restoreo el /boot y el resto de los fs que tengo
cd /a/boot
ssh -l root 192.168.201.20 cat /backupsos/smtp-app-db-01/smtp-app-db-01.boot.dump.20190928.gz | gzip -dc | restore -rf -
cd ../home
ssh -l root 192.168.201.20 cat /backupsos/smtp-app-db-01/smtp-app-db-01.home.dump.20190928.gz | gzip -dc | restore -rf -
cd ../var
ssh -l root 192.168.201.20 cat /backupsos/smtp-app-db-01/smtp-app-db-01.var.dump.20190928.gz | gzip -dc | restore -rf -
cd ../usr
ssh -l root 192.168.201.20 cat /backupsos/smtp-app-db-01/smtp-app-db-01.usr.dump.20190928.gz | gzip -dc | restore -rf -

# Ya estan los restore monto fs especiales para hacer chroot
mount /proc /a/proc -o bind
mount /dev /a/dev -o bind
mount /sys /a/sys -o bind
chroot /a

# Cambio la pass de root para tenerla para el proximo boot
passwd root

# Corrijo o chequeo la configuracion de la red
cd /etc/sysconfig/network-scripts/
cp -p ifcfg-eth0 ifcfg-eth0:1
vi ifcfg-eth0:1
vi ifcfg-eth0:2
vi ifcfg-eth0

# Corrijo o chequeo el sticky bit
chmod 1777 /tmp

# Deshabilito AccessControl SI O SI!
chmod 000 /opt/CA/AccessControl/bin/seosd

# Deshabilito todos los servicios que considere necesarios.
chkconfig cman off
chkconfig clvmd off
chkconfig gfs2 off
chkconfig rgmanager off
cd /etc/cluster/
mv cluster.conf cluster.conf.20190929

# Modifico el /etc/fstab
vi /etc/fstab
## saco el fs de datos y modifico/corrijo el /boot

Reinstall grub ejecutamos grub y escribimos lo de la siguiente imagen:

# Reinstall del /boot/initrd
ls -ltra /boot/initrd-*

# Hago una copia del ultimo
cp -p /boot/initrd-2.6.18-308.11.1.el5.img /boot/initrd-2.6.18-308.11.1.el5.img.bak
mkinitrd -f -v /boot/initrd-2.6.18-308.11.1.el5.img 2.6.18-308.11.1.el5

sábado, 16 de marzo de 2024

extender el barra con particion tradiciona y lvm

 

este tipo de instalacion es la habitual, parte del / es particion tradicional y otra parte es lvm

echo 1 > /sys/block/sda/device/rescan
fdisk /dev/sda
n,p,3 , t , 3, (con t cambiar a tipo: 8e)
w
partprobe /dev/sda
partx -a /dev/sda
vgextend rhel /dev/sda3
lvextend -l +100%FREE /dev/mapper/rhel/root
resize2fs /dev/mapper/rhel/root


Verificar en que Switch y puerto esta conectado un Linux coneja Avatar

 

# tcpdump -vvi em3| grep -ib5 pac
tcpdump: listening on em3, link-type EN10MB (Ethernet), capture size 262144 bytes
108221-   0x0000:  0078
108238- Port Description TLV (4), length 41: topology/pod-1/paths-209/pathep-[eth1/10]
108318-   0x0000:  746f 706f 6c6f 6779 2f70 6f64 2d31 2f70
108370-   0x0010:  6174 6873 2d32 3039 2f70 6174 6865 702d
108422-   0x0020:  5b65 7468 312f 3130 5d
108457: System Name TLV (5), length 21: PAC-L209.datanet.corp

La opcion del tcpdump fue, –vvi nombre de la placa en linux | grep -ib5, esto es 5 lineas before , si le pusiera -ia5 significa 5 lineas after y pac es porque se que el switch se llama pac-algo

Otra opcion que puedo poner, si no conozco el nombre del switch es buscar por System Name

[root@plcuzcoapp1 ~]# tcpdump -vvi eth0| grep -ib5 "System Name"
tcpdump: WARNING: eth0: no IPv4 address assigned
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
20452741-       Port Description TLV (4), length 54: topology/pod-1/paths-217/extpaths-105/pathep-[eth1/15]
20452834-         0x0000:  746f 706f 6c6f 6779 2f70 6f64 2d31 2f70
20452886-         0x0010:  6174 6873 2d32 3137 2f65 7874 7061 7468
20452938-         0x0020:  732d 3130 352f 7061 7468 6570 2d5b 6574
20452990-         0x0030:  6831 2f31 355d
20453017:       System Name TLV (5), length 21: PAC-L217.datanet.corp
20453072-         0x0000:  5041 432d 4c32 3137 2e64 6174 616e 6574
20453124-         0x0010:  2e63 6f72 70
20453149-       System Description TLV (6), length 23
20453188-         topology/pod-1/node-217
20453215-         0x0000:  746f 706f 6c6f 6779 2f70 6f64 2d31 2f6e
^C81230 packets captured
81272 packets received by filter
36 packets dropped by kernel

[root@plcuzcoapp1 ~]#

Falla control-m luego de actualizacion de centrify

 

Cuando fallan las conexiones del control-m por actualización o parcheo del centrify. Esta acción la tiene que hacer SI pero por las dudas aca queda.

Control-m usa algoritmo de sssh antiguo que no contemplan las nuevas versiones de ssh

editar:
/etc/centrifydc/ssh/sshd_config

agregar al final:
KexAlgorithms +diffie-hellman-group14-sha1

reiniciar:
centrify-sshd

Extender /dev/sda2 (o cualquier partición) con el comando growpart

 

esto solo aplica a RHEL7 y RHEL8 

Primero lo instalamos si aun no esta:

# yum install cloud-utils-growpart

Si el disco ya esta extendido en VMWARE se puede continuar

# growpart /dev/sda 2

esto va agregar todo el espacio libre en /dev/sda (también esta la posibilidad de crear el /dev/sda3 con un fdisk tradicional)

por ultimo hacemos el resize del pv

# pvresize /dev/sda2

con estos simples paso podes ampliar cualquier FS del disco de booteo o cualquier otro disco

viernes, 23 de agosto de 2019

Archivos


Buscar archivos mayores a 500 mb

find . -type f -size +500M -exec ls -lh {} \;| awk '{ print $5 "\t" $9}' |sort -k 3





jueves, 22 de agosto de 2019

Agregar area de Swap a una existente

Estos son los comandos, resumidos:

lvcreate -n lv_swap2 -L50g /dev/VolGroup00 mkswap /dev/VolGroup00/lv_swap2 agregar esta linea al /etc/fstab : /dev/mapper/VolGroup00-lv_swap2 swap swap defaults 0 0 swapon -va free -m
Aca esta el paso a paso detallado
[root@plana]# lvcreate -n lv_swap2 -L50g /dev/VolGroup00
Logical volume "lv_swap2" created.

[root@plana]# mkswap /dev/VolGroup00/lv_swap2
mkswap: /dev/VolGroup00/lv_swap2: warning: don't erase bootbits sectors on whole disk.
Use -f to force. Setting up swapspace version 1, size = 52428796 KiB
[root@plana]# vi /etc/fstab (agregar la linea a continuacion descripta)
/dev/mapper/VolGroup00-lv_swap2 swap    swap    defaults        0       0
[root@plan]# swapon -va swapon on /dev/mapper/VolGroup00-lv_swap2
swapon: /dev/mapper/VolGroup00-lv_swap2: found swap signature: version 1, page-size 4, same byte order swapon: /dev/mapper/VolGroup00-lv_swap2: pagesize=4096, swapsize=53687091200, devsize=53687091200
[root@plan]# free -m              total       used       free     shared    buffers     cached
Mem:        258208     169225      88982          0       1642     128652 -/+ buffers/cache:      38931     219277 Swap:        67583       2197      65386
 [root@plan]#

jueves, 15 de agosto de 2019

Errores de Mail


Aca demostramos que el mail esta configurado en el linux y pero lo rebota el smtp

# echo hola | sendmail -v -Am nicolas@dominio.com.ar
nicolas@dominio.com.ar... Connecting to smtp.dominio.com.ar. via relay...
220 X3.dominio.dominio.com.ar Microsoft ESMTP MAIL Service ready at Thu,13:12:14
>>> EHLO linux.dominio.com.ar
250-mailbox.dominio.arg.dominio.com.ar Hello [10.10.10.108]
250-SIZE
250-PIPELINING
250-DSN
250-ENHANCEDSTATUSCODES
250-STARTTLS
250-X-ANONYMOUSTLS
250-AUTH NTLM
250-X-EXPS GSSAPI NTLM
250-8BITMIME
250-BINARYMIME
250-CHUNKING
250-XEXCH50
250-XRDST
250 XSHADOWREQUEST
>>> STARTTLS
220 2.0.0 SMTP server ready
>>> EHLO linux.dominio.com.ar
250-mailbox.dominio.arg.dominio.com.ar Hello [10.10.10.108]
250-SIZE
250-PIPELINING
250-DSN
250-ENHANCEDSTATUSCODES
250-AUTH NTLM LOGIN
250-X-EXPS GSSAPI NTLM
250-8BITMIME
250-BINARYMIME
250-CHUNKING
250-XEXCH50
250-XRDST
250 XSHADOWREQUEST
>>> MAIL From:<root@linux.dominio.com.ar> SIZE=5
530 5.7.1 Client was not authenticated
/root/dead.letter... Saved message in /root/dead.letter
Closing connection to smtp.dominio.com.ar.
>>> QUIT

lunes, 5 de agosto de 2019

Habilitacion de repo con error


Pidieron habilitar un repositorio rhel-server-rhscl-7-rpms , lo hicimos de la siguiente manera;

subscription-manager repos --enable rhel-7-server-extras-rpms
subscription-manager repos --enable rhel-server-rhscl-7-rpms
subscription-manager repos --list-enabled
 Al intentar usarlo, nos tira error

yum install php

https://sat1.dominio.com.ar/pulp/repos/telecom/Library/content/dist/rhel/server/7/7.5/x86_64/rhscl/1/os/repodata/repomd.xml: [Errno 14] HTTPS Error 404 - Not Found
Trying other mirror.

Cuando pasa que nos muestra la version(resaltada en el parrafo anterior) en lugar de esto rhel/server/7/7Server/x86_64 significa que es porque tiene seteado el release (que lo usamos para llevar a una version especifica en este caso 7.5 al momento de instalar el so) simplemente le sacamos el release y limpiamos los repos asi:


subscription-manager release --unset
yum clean all
yum list

viernes, 5 de julio de 2019

Agregar raw device al oracle rac


En el siguiente ejemplo nos piden agregar 2 luns


 ora1]# rescan-scsi-bus.sh
Scanning SCSI subsystem for new devices
Scanning host 0 for  SCSI target IDs  0 1 2 3 4 5 6 7, all LUNs
 Scanning for device 0 0 0 0 ... 0 ...
OLD: Host: scsi0 Channel: 00 Id: 00 Lun: 00
      Vendor: HP       Model: LOGICAL VOLUME   Rev: 4.52
      Type:   Direct-Access                    ANSI SCSI revision: 05
 Scanning for device 0 3 0 0 ... 0 ...
OLD: Host: scsi0 Channel: 03 Id: 00 Lun: 00
      Vendor: HP       Model: P440ar           Rev: 4.52
      Type:   RAID                             ANSI SCSI revision: 05
Scanning host 1 for  all SCSI target IDs, all LUNs
 Scanning for device 1 0 0 0 ...
OLD: Host: scsi1 Channel: 00 Id: 00 Lun: 00
      Vendor: EMC      Model: Invista          Rev: 5520
      Type:   Direct-Access                    ANSI SCSI revision: 04
 Scanning for device 1 0 0 1 ...

ACA CORTO LA SALIDA PORQUE ES MUY LARGA

8 new or changed device(s) found.
        [1:0:0:31]
        [1:0:0:32]
        [1:0:1:31]
        [1:0:1:32]
        [2:0:0:31]
        [2:0:0:32]
        [2:0:1:31]
        [2:0:1:32]
0 remapped or resized device(s) found.
0 device(s) removed.

Si el procedimiento de arriba no funciona o no esta instalado el rescan-scsi-bus.sh , copiar y pegar el script siguiente :

for s in $(ls /sys/class/scsi_host)
        do
        FILE="/sys/class/fc_host/$s/issue_lip"
        if [ -f $FILE ];
        then
                        echo $s "lip"
                        echo "1" > /sys/class/fc_host/$s/issue_lip
        #else
                        #echo "File $FILE no existe"
        fi
        FILE="/sys/class/scsi_host/$s/scan"
        if [ -f $FILE ];
        then
                        echo $s "scan"
                        echo "- - -" > /sys/class/scsi_host/$s/scan
        #else
           #echo "File $FILE does not exist."
        fi
        sleep 3
        done

Ahora chequeo en Ambos Nodos, si en la salida del multipath -ll veo las luns que me asigno storage

[ ora1 ]# multipath -F; multipath -v2
Jul 05 14:19:09 | mp_fra02: map in use
Jul 05 14:19:09 | mp_redo01: map in use
Jul 05 14:19:09 | mp_fra01: map in use
Jul 05 14:19:09 | mp_scannetfs: map in use
Jul 05 14:19:09 | mp_data12: map in use
Jul 05 14:19:09 | mp_data09: map in use
Jul 05 14:19:09 | mp_data11: map in use
Jul 05 14:19:09 | mp_data08: map in use
Jul 05 14:19:09 | mp_data10: map in use
Jul 05 14:19:09 | mp_data07: map in use
Jul 05 14:19:09 | mp_data06: map in use
Jul 05 14:19:09 | mp_data05: map in use
Jul 05 14:19:09 | mp_data04: map in use
Jul 05 14:19:09 | mp_u01: map in use
Jul 05 14:19:09 | mp_ocr03: map in use
Jul 05 14:19:09 | mp_data03: map in use
Jul 05 14:19:09 | mp_u00: map in use
Jul 05 14:19:09 | mp_fra04: map in use
Jul 05 14:19:09 | mp_data02: map in use
Jul 05 14:19:09 | mp_ocr02: map in use
Jul 05 14:19:09 | mp_fra03: map in use
Jul 05 14:19:09 | mp_redo02: map in use
Jul 05 14:19:09 | mp_data01: map in use
Jul 05 14:19:09 | mp_ocr01: map in use
Jul 05 14:19:09 | mpatha: ignoring map
create: mp_data13 (36000144000000010601ec9b99d38f9ec) undef EMC,Invista
size=310G features='0' hwhandler='0' wp=undef
`-+- policy='round-robin 0' prio=1 status=undef
  |- 1:0:0:31 sdct 70:16  undef ready running
  |- 2:0:0:31 sdcx 70:80  undef ready running
  |- 1:0:1:31 sdcv 70:48  undef ready running
  `- 2:0:1:31 sdcz 70:112 undef ready running
create: mp_data14 (36000144000000010601ec9b99d38f9f0) undef EMC,Invista
size=310G features='0' hwhandler='0' wp=undef
`-+- policy='round-robin 0' prio=1 status=undef
  |- 1:0:0:32 sdcu 70:32  undef ready running
  |- 2:0:0:32 sdcy 70:96  undef ready running
  |- 1:0:1:32 sdcw 70:64  undef ready running
  `- 2:0:1:32 sdda 70:128 undef ready running
[ora1]#

[ora1]# multipath -F; multipath -v2
Jul 05 14:20:57 | mp_fra02: map in use
Jul 05 14:20:57 | mp_redo01: map in use
Jul 05 14:20:57 | mp_fra01: map in use
Jul 05 14:20:57 | mp_scannetfs: map in use
Jul 05 14:20:57 | mp_data12: map in use
Jul 05 14:20:57 | mp_data09: map in use
Jul 05 14:20:57 | mp_data11: map in use
Jul 05 14:20:57 | mp_data08: map in use
Jul 05 14:20:57 | mp_data10: map in use
Jul 05 14:20:57 | mp_data07: map in use
Jul 05 14:20:57 | mp_data06: map in use
Jul 05 14:20:57 | mp_data05: map in use
Jul 05 14:20:57 | mp_data04: map in use
Jul 05 14:20:57 | mp_u01: map in use
Jul 05 14:20:57 | mp_data03: map in use
Jul 05 14:20:57 | mp_ocr03: map in use
Jul 05 14:20:57 | mp_u00: map in use
Jul 05 14:20:57 | mp_fra04: map in use
Jul 05 14:20:57 | mp_data02: map in use
Jul 05 14:20:57 | mp_ocr02: map in use
Jul 05 14:20:57 | mp_fra03: map in use
Jul 05 14:20:57 | mp_redo02: map in use
Jul 05 14:20:57 | mp_data01: map in use
Jul 05 14:20:57 | mp_ocr01: map in use
Jul 05 14:20:57 | mpatha: ignoring map
create: mp_data13 (36000144000000010601ec9b99d38f9ec) undef EMC,Invista
size=310G features='0' hwhandler='0' wp=undef
`-+- policy='round-robin 0' prio=1 status=undef
  |- 1:0:0:31 sdct 70:16  undef ready running
  |- 2:0:0:31 sdcx 70:80  undef ready running
  |- 1:0:1:31 sdcv 70:48  undef ready running
  `- 2:0:1:31 sdcz 70:112 undef ready running
create: mp_data14 (36000144000000010601ec9b99d38f9f0) undef EMC,Invista
size=310G features='0' hwhandler='0' wp=undef
`-+- policy='round-robin 0' prio=1 status=undef
  |- 1:0:0:32 sdcu 70:32  undef ready running
  |- 2:0:0:32 sdcy 70:96  undef ready running
  |- 1:0:1:32 sdcw 70:64  undef ready running
  `- 2:0:1:32 sdda 70:128 undef ready running
[ora1]#

[~]# multipath -ll|grep -i 00010601ec9b99d38f9ec
mpathz (36000144000000010601ec9b99d38f9ec) dm-57 EMC,Invista
[root@plscannetora1 ~]# multipath -ll|grep -i 00010601ec9b99d38f9f0
mpathaa (36000144000000010601ec9b99d38f9f0) dm-58 EMC,Invista
[ora1]#

Chequeo lo mismo en el otro nodo del rac

[ora2 ~]# multipath -ll|grep -i 00010601ec9b99d38f9ec
mpathz (36000144000000010601ec9b99d38f9ec) dm-57 EMC,Invista
[root@plscannetora2 ~]# multipath -ll|grep -i 00010601ec9b99d38f9f0
mpathaa (36000144000000010601ec9b99d38f9f0) dm-58 EMC,Invista
[ora2 ~]#

En ambos nodos del rac, hago un bkp del multipath.conf

[ora1]# cp multipath.conf multipath.conf.ant

[ora2 ]# ls -l multipath.conf
-rw-r--r-- 1 root root 6433 May 22  2018 multipath.conf
[ora2 ]# cp multipath.conf multipath.conf.ant


En AMBOS nodos del rac ,edito el multipath.conf , y agrego la lun con el nombre que me indico base de datos, en este ejemplo el nombre que pidieron fue mp_data13 y mp_data14

multipath {
                wwid                    36000144000000010601ec9b99d38f9ec
                alias                   mp_data13
        }
        multipath {
                wwid                    36000144000000010601ec9b99d38f9f0
                alias                   mp_data14
        }


Luego en uno de los nodos ejecuto el fdisk pero con la opcion -u para poder generar :

[ora1 ~]# fdisk -u /dev/mapper/mp_data13

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c').

Command (m for help): d
Selected partition 1

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First sector (63-650119679, default 63): 128
Last sector, +sectors or +size{K,M,G} (128-650119679, default 650119679):
Using default value 650119679

Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 83

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 22: Invalid argument.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
[ora1 ~]#

[ora1 ~]# fdisk -u /dev/mapper/mp_data14

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c').

Command (m for help): d
Selected partition 1

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First sector (63-650119679, default 63): 128
Last sector, +sectors or +size{K,M,G} (128-650119679, default 650119679):
Using default value 650119679

Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 83

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 22: Invalid argument.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
[ora1 ~]#

Solo en uno de los nodos , por ultimo ejecutar

[ora1 ~]# partprobe /dev/mapper/mp_data13
[ora1 ~]# partprobe /dev/mapper/mp_data14

chequeamos en el /dev/mapper/ como quedaron o si tienen reglas udev ( si las tienen aparece como owner oracle:grid , en ese caso hay que agregar en el /etc/udev...)

[ora1 ~]# ls -ltr /dev/mapper/mp_data1*
lrwxrwxrwx 1 root root 8 Jan  8 08:14 /dev/mapper/mp_data10 -> ../dm-11
lrwxrwxrwx 1 root root 8 Jan  8 08:14 /dev/mapper/mp_data11 -> ../dm-13
lrwxrwxrwx 1 root root 8 Jan  8 08:14 /dev/mapper/mp_data12 -> ../dm-28
lrwxrwxrwx 1 root root 8 Jan  8 08:15 /dev/mapper/mp_data10p1 -> ../dm-30
lrwxrwxrwx 1 root root 8 Jan  8 08:15 /dev/mapper/mp_data11p1 -> ../dm-36
lrwxrwxrwx 1 root root 8 Jan  8 08:15 /dev/mapper/mp_data12p1 -> ../dm-43
lrwxrwxrwx 1 root root 8 Jul  5 14:46 /dev/mapper/mp_data13p1 -> ../dm-59
lrwxrwxrwx 1 root root 8 Jul  5 14:46 /dev/mapper/mp_data13 -> ../dm-57
lrwxrwxrwx 1 root root 8 Jul  5 14:46 /dev/mapper/mp_data14p1 -> ../dm-60
lrwxrwxrwx 1 root root 8 Jul  5 14:46 /dev/mapper/mp_data14 -> ../dm-58
[ora1 ~]# 

En el otro nodo del rac, ejecutar un multipath -F ; multipath -v2 para que tome lo que ejecute en el otro nodo cuando hice el partprobe

[ora2 ~]# multipath -F; multipath -v2
Jul 05 15:25:38 | mp_fra02: map in use
Jul 05 15:25:38 | mp_redo01: map in use
Jul 05 15:25:38 | mp_fra01: map in use
Jul 05 15:25:38 | mp_scannetfs: map in use
Jul 05 15:25:38 | mp_data12: map in use
Jul 05 15:25:38 | mp_data09: map in use
Jul 05 15:25:38 | mp_data11: map in use
Jul 05 15:25:38 | mp_data08: map in use
Jul 05 15:25:38 | mp_data10: map in use
Jul 05 15:25:38 | mp_data07: map in use
Jul 05 15:25:38 | mp_data06: map in use
Jul 05 15:25:38 | mp_data05: map in use
Jul 05 15:25:38 | mp_data04: map in use
Jul 05 15:25:38 | mp_u01: map in use
Jul 05 15:25:38 | mp_data03: map in use
Jul 05 15:25:38 | mp_ocr03: map in use
Jul 05 15:25:38 | mp_u00: map in use
Jul 05 15:25:38 | mp_fra04: map in use
Jul 05 15:25:38 | mp_data02: map in use
Jul 05 15:25:38 | mp_ocr02: map in use
Jul 05 15:25:38 | mp_fra03: map in use
Jul 05 15:25:38 | mp_redo02: map in use
Jul 05 15:25:38 | mp_data01: map in use
Jul 05 15:25:38 | mp_ocr01: map in use
Jul 05 15:25:38 | mpatha: ignoring map
create: mp_data13 (36000144000000010601ec9b99d38f9ec) undef EMC,Invista
size=310G features='0' hwhandler='0' wp=undef
`-+- policy='round-robin 0' prio=1 status=undef
  |- 1:0:0:31 sdct 70:16  undef ready running
  |- 2:0:0:31 sdcx 70:80  undef ready running
  |- 1:0:1:31 sdcv 70:48  undef ready running
  `- 2:0:1:31 sdcz 70:112 undef ready running
create: mp_data14 (36000144000000010601ec9b99d38f9f0) undef EMC,Invista
size=310G features='0' hwhandler='0' wp=undef
`-+- policy='round-robin 0' prio=1 status=undef
  |- 1:0:0:32 sdcu 70:32  undef ready running
  |- 2:0:0:32 sdcy 70:96  undef ready running
  |- 1:0:1:32 sdcw 70:64  undef ready running
  `- 2:0:1:32 sdda 70:128 undef ready running
[ora2 ~]# 

Instalar docker-compose


Para instalar docker-compose, primero se debe instalar docker


[app5 ~]# yum install docker
Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager
rhel-7-server-extras-rpms                                                                          | 2.0 kB  00:00:00
rhel-7-server-optional-rpms                                                                        | 2.0 kB  00:00:00
rhel-7-server-rpms                                                                                 | 2.0 kB  00:00:00
rhel-7-server-supplementary-rpms                                                                   | 2.0 kB  00:00:00
Dependencies Resolved

==========================================================================================================================
 Package                        Arch          Version                              Repository                        Size
==========================================================================================================================
Installing:
 docker                         x86_64        2:1.13.1-88.git07f3374.el7           rhel-7-server-extras-rpms         17 M
Installing for dependencies:
 PyYAML                         x86_64        3.10-11.el7                          rhel-7-server-rpms               153 k
 atomic-registries              x86_64        1:1.22.1-26.gitb507039.el7           rhel-7-server-extras-rpms         35 k
 audit-libs-python              x86_64        2.8.4-4.el7                          rhel-7-server-rpms                76 k
 checkpolicy                    x86_64        2.5-8.el7                            rhel-7-server-rpms               295 k
 container-selinux              noarch        2:2.74-1.el7                         rhel-7-server-extras-rpms         37 k
 container-storage-setup        noarch        0.11.0-2.git5eaf76c.el7              rhel-7-server-extras-rpms         35 k
 containers-common              x86_64        1:0.1.31-7.gitb0b750d.el7            rhel-7-server-extras-rpms         18 k
 docker-client                  x86_64        2:1.13.1-88.git07f3374.el7           rhel-7-server-extras-rpms        3.8 M
 docker-common                  x86_64        2:1.13.1-88.git07f3374.el7           rhel-7-server-extras-rpms         95 k
 docker-rhel-push-plugin        x86_64        2:1.13.1-88.git07f3374.el7           rhel-7-server-extras-rpms        1.9 M
 libsemanage-python             x86_64        2.5-14.el7                           rhel-7-server-rpms               113 k
 libyaml                        x86_64        0.1.4-11.el7_0                       rhel-7-server-rpms                55 k
 oci-register-machine           x86_64        1:0-6.git2b44233.el7                 rhel-7-server-extras-rpms        1.1 M
 oci-systemd-hook               x86_64        1:0.1.18-2.git3efe246.el7            rhel-7-server-extras-rpms         34 k
 oci-umount                     x86_64        2:2.3.4-2.git87f9237.el7             rhel-7-server-extras-rpms         32 k
 policycoreutils-python         x86_64        2.5-29.el7                           rhel-7-server-rpms               456 k
 python-IPy                     noarch        0.75-6.el7                           rhel-7-server-rpms                32 k
 python-pytoml                  noarch        0.1.14-1.git7dea353.el7              rhel-7-server-extras-rpms         18 k
 setools-libs                   x86_64        3.3.8-4.el7                          rhel-7-server-rpms               620 k
Updating for dependencies:
 audit                          x86_64        2.8.4-4.el7                          rhel-7-server-rpms               250 k
 audit-libs                     i686          2.8.4-4.el7                          rhel-7-server-rpms               101 k
 audit-libs                     x86_64        2.8.4-4.el7                          rhel-7-server-rpms               100 k

Transaction Summary
==========================================================================================================================
Install  1 Package  (+19 Dependent packages)
Upgrade             (  3 Dependent packages)

Total download size: 27 M
Is this ok [y/d/N]: y
Downloading packages:


El paso siguiente es bajar de internet, el docker compose, se puede bajar de esta web :

https://github.com/docker/compose/releases

Al ingresar al link mencionado arriba, me baja el archivo docker-compose-Linux-x86_64 , el cual lo debo poner en /usr/local/bin/ con el nombre docker-compose tal como muestro a continuacion:

mv docker-compose-Linux-x86_64 /usr/local/bin/docker-compose

Eso es todo