IBM Cloud Docs
Configuración del servidor de automatización

Configuración del servidor de automatización

El servidor de automatización se utiliza para alojar Ansible®. La siguiente arquitectura describe Ansible:

  • Un Ansible nodo de control- El Ansible nodo de control es el lugar donde Ansible está instalado, y puede acceder a los hosts Ansible Linux® a través de Secure Shell (SSH), y a los hosts Ansible Windows® configurados con Windows Remote Management (WinRM). Ansible requiere los siguientes elementos:
    • Un usuario no root con privilegios sudo.
    • Un par de claves SSH asociado a este usuario.
    • Un archivo de inventario que contiene información sobre los hosts Ansible que se gestionarán con Ansible.
    • Un playbook que detalla las tareas a realizar en los hosts Ansible.
    • Opcionalmente, Ansible Vault se puede utilizar para crear archivos cifrados para guardar parámetros sensibles, como contraseñas.
  • Uno o más Ansible hosts- Un Ansible host es cualquier máquina virtual (VM) que su Ansible nodo de control está configurado para automatizar.
    • Para Linux, se requiere la clave pública SSH del nodo de control Ansible que se añade a las claves autorizadas de un usuario del sistema. El usuario puede ser root o un usuario normal con privilegios sudo.
    • Para Windows, los hosts Ansible configurados con WinRM deben estar operativos.

Aquí se selecciona una Instancia de Servidor Virtual (VSI) para facilitar el despliegue y la conectividad externa. Sin embargo, si se prefiere una máquina virtual, algunas de estas tareas siguen siendo aplicables.

Puede conectarse al servidor de automatización que se pidió en el paso anterior desde su ordenador portátil en la dirección IP pública. A continuación, debes seguir estas tareas:

  1. Actualiza los paquetes del sistema operativo.
  2. Cambiar el DNS.
  3. Configure el protocolo de tiempo de red(NTP).
  4. Crea dos cuentas de usuario, una para que la uses tú, y otra llamada ansible que pueda usar Ansible.
  5. Cree un par de claves SSH en el VSI para la cuenta de usuario ansible para conectarse a Ansible Linux hosts.
  6. Crea un par de claves SSH en tu portátil, y copia tu clave pública en el servidor Ansible para poder acceder al servidor sin contraseñas.
  7. Fortalecer el SSH.
  8. Instala Ansible.

Actualización de los paquetes del sistema operativo

El comando apt update descarga la información de los paquetes de todas las fuentes configuradas. El sistema sabe qué paquetes están disponibles para actualización y dónde recuperar ese software. El comando apt upgrade utiliza esta información y actualiza todos los paquetes instalados a sus versiones más recientes.

  1. Desde el portátil, conéctese al servidor de automatización utilizando la dirección IP y las credenciales de root de la consola IBM Cloud® ssh root@<public_ip_address>
  2. En la línea de comandos, utilice el comando apt update && apt upgrade -y para actualizar y mejorar los paquetes del sistema operativo.

Cambio de DNS

Tras el aprovisionamiento, la VSI se configura para utilizar los IBM Cloud resolvedores DNS: 10.0.80.11 and 10.0.80.12, y no su instancia VMware Cloud Foundation for Classic - Automated- Active Directory™ (AD/DNS). Puede cambiar esta configuración utilizando los siguientes comandos y cambiando <addns_1> y <addns_2> por las direcciones IP de sus servidores AD/DNS. Sustituya <root_domain> por su VCF for Classic - Automated dominio de instancia. Por ejemplo: test.ibmloud.local

sudo sed -i 's/10.0.80.11/<addns_1>/g' /etc/netplan/50-cloud-init.yaml
sudo sed -i 's/10.0.80.12/<addns_2>/g' /etc/netplan/50-cloud-init.yaml
sudo sed -i 's/search: \[\]/search: \[<root_domain>\]/g' /etc/netplan/50-cloud-init.yaml
sudo netplan apply

Utilice los siguientes comandos para la verificación.

systemd-resolve --status | grep 'DNS Servers' -A2
resolvectl status

Configuración de NTP

Los siguientes comandos instalan NTP, configuran servertime.service.softlayer.com como fuente de hora NTP, eliminan los servidores ubuntu.pool.ntp.org y, a continuación, reinician el servicio NTP.

apt install ntp -y
sudo sed -i 's/pool 0.ubuntu.pool.ntp.org iburst/#pool 0.ubuntu.pool.ntp.org iburst/g' /etc/ntp.conf
sudo sed -i 's/pool 1.ubuntu.pool.ntp.org iburst/#pool 1.ubuntu.pool.ntp.org iburst/g' /etc/ntp.conf
sudo sed -i 's/pool 2.ubuntu.pool.ntp.org iburst/#pool 2.ubuntu.pool.ntp.org iburst/g' /etc/ntp.conf
sudo sed -i 's/pool 3.ubuntu.pool.ntp.org iburst/#pool 3.ubuntu.pool.ntp.org iburst/g' /etc/ntp.conf
sudo sed -i 's/pool ntp.ubuntu.com/#pool ntp.ubuntu.com/g' /etc/ntp.conf
sudo sed -i '/^# Specify one or more NTP servers./a # IBM Cloud NTP\nserver servertime.service.softlayer.com prefer iburst' /etc/ntp.conf
sudo service ntp restart

El comando ntpq -p se utiliza para verificar NTP. En la salida se muestra la línea remote is 10.0.77.54, que es la dirección IP de servertime.service.softlayer.com

Creación de usuarios

Se crean dos usuarios en el servidor. El primer usuario es una cuenta que puede utilizar para conectarse al servidor, ya que en un paso posterior se elimina SSH como root. El segundo usuario es una cuenta que utiliza Ansible.

  1. Utilizando la dirección IP y las credenciales de root de la consola IBM Cloud, desde su portátil, conéctese al servidor Linux ssh root@<public_ip_address>
  2. En la línea de comandos, introduzca los siguientes comandos y proporcione una contraseña cuando se le solicite.
adduser <your_username>
usermod -aG sudo <your_username>
adduser ansible
usermod -aG sudo ansible

Creación del par de claves para el usuario Ansible

  1. En la línea de comandos, cambia al usuario ansible con su - ansible.
  2. Para crear un par de claves, introduzca ssh-keygen -b 4096 y siga las instrucciones. Una frase de contraseña complica el uso de la clave SSH en la automatización.

Creación del par de claves para su usuario

Supongamos que está utilizando un Mac o Linux portátil para crear un par de claves SSH y crear o actualizar un archivo de configuración SSH.

  1. Salga de la sesión SSH del servidor de automatización.
  2. Si no tienes un par de claves en tu portátil, crea uno con el comando ssh-keygen -b 4096. Se recomienda utilizar una frase de contraseña.
  3. Transfiere la clave pública al servidor de automatización: ssh-copy-id <your_username@<bastion_host_public_ip_address>.
  4. Cree o actualice el archivo de configuración SSH de su usuario local utilizando un editor de texto, por ejemplo vi ~/.ssh/config. El <short_name> es el nombre que desea utilizar en el comando SSH, como ssh <short_name>.
Host *
    Port 22
    StrictHostKeyChecking no
    UserKnownHostsFile /dev/null
    ServerAliveInterval 60
    ServerAliveCountMax 30

Host <short_name>
    HostName <automation_server_public_ip_address>
    User <your_user_name>
    IdentityFile <private_key_e.g._~/.ssh/key01>

Guarde el archivo pulsando Esc y wq. A continuación, puede acceder al servidor de automatización mediante el comando ssh <short_name>.

Endurecimiento de SSH

  1. Conectar con el servidor de automatización: ssh <short_name>. Esta vez SSH utiliza el archivo de configuración, su nombre de usuario, la dirección IP y la clave privada para conectarse al servidor de automatización.
  2. Cuando aparezca el mensaje, introduzca la frase de contraseña si la ha utilizado.
  3. Utilice el siguiente comando para desactivar la autenticación de contraseña: sudo sed -i 's/PasswordAuthentication yes/PasswordAuthentication no/g' /etc/ssh/sshd_config.
  4. Utilice el siguiente comando para desactivar el inicio de sesión de root: sudo sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin no/g' /etc/ssh/sshd_config.
  5. Reinicie SSH con el comando sudo systemctl restart ssh.