我将使用aws cli启动几个与jenkins一起使用的ec2实例,然后我想将其ssh放入这些实例并在其中安装一些软件包。是否仍然可以将ssh放入这些实例并使用execute shell安装这些软件包?无法使用SSH插件,因为我事先不知道IP。 任何帮助将不胜感激。
答案 0 :(得分:1)
我想使用这些实例并在其中安装一些软件包
如果这是您要ssh的唯一原因,则我不建议在实例创建后使用ssh安装软件包。最好在用户数据中将这些安装作为命令使用,或者创建已经具有这些软件包的AMI。
用户数据和Shell脚本
如果您熟悉Shell脚本,这是最简单,最方便的 在启动时向实例发送指令的完整方法。新增中 这些任务在启动时会增加启动时间 实例。您应该多花几分钟的时间 测试用户脚本完成之前要完成的任务 成功。
在下面的示例脚本中,该脚本创建并配置了我们的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
与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
因此,使用上述方法是在实例创建时处理Ec2安装和配置的标准方法,因此您也不需要实例IP。