Voy a lanzar algunas instancias ec2 con jenkins usando aws cli y luego quiero ssh en esas instancias e instalar algunos paquetes en ellos. ¿Hay de todos modos que podría ssh en estas instancias e instalar estos paquetes mediante el shell de ejecución? No puedo usar el plugin SSH, ya que no conozco el ip de antemano. Cualquier ayuda sería apreciada.

0
Anshul Walia 4 nov. 2019 a las 10:14

1 respuesta

Quiero ssh en esas instancias e instalar algunos paquetes en ellas

Si esta es la única razón por la que desea ssh, no recomendaré instalar el paquete usando ssh después de la creación de la instancia. es mejor poner estas instalaciones al mando en datos de usuario o crear AMI que ya tenga estos paquetes.

Datos de usuario y scripts de shell

Si está familiarizado con las secuencias de comandos de shell, esta es la forma más fácil y completa de enviar instrucciones a una instancia en el lanzamiento. Agregar estas tareas en el momento del inicio aumenta la cantidad de tiempo que lleva iniciar la instancia. Debe dejar unos minutos de tiempo extra para que se completen las tareas antes de probar que el script de usuario ha finalizado con éxito.

En el siguiente script de ejemplo, el script crea y configura nuestro servidor web.

#!/bin/bash
yum update -y
amazon-linux-extras install -y lamp-mariadb10.2-php7.2 php7.2
yum install -y httpd mariadb-server
systemctl start httpd
systemctl enable httpd
usermod -a -G apache ec2-user
chown -R ec2-user:apache /var/www
chmod 2775 /var/www
find /var/www -type d -exec chmod 2775 {} \;
find /var/www -type f -exec chmod 0664 {} \;
echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php

Datos de usuario de AWS-EC2

Use esto con AWS-cli

aws ec2 run-instances --image-id ami-a4c7edb2 --count 1 \
     --instance-type t2.micro --key-name mynewkey \
     --subnet-id subnet-5630306b --user-data file://ud.txt

aws-ec2-cli-userdata

Por lo tanto, usar lo anterior es la forma estándar de lidiar con la instalación y configuración de Ec2 en el momento de la creación de la instancia; además, no necesitará una IP de instancia.

1
Adiii 4 nov. 2019 a las 07:35