我正在尝试使用我拥有的shell脚本,以便在通过AWS开发工具包使用nodejs启动服务器时在单个AWS服务器上自动安装鱿鱼代理,但是似乎每当我在服务器上启动实例时,根本不接受我脚本的输入。任何帮助,将不胜感激。
const AWS = require('aws-sdk')
const ec2 = new AWS.EC2({ apiVersion: '2016-11-15', region: "us-east-1", accessKeyId: "XXXXXXXXX", secretAccessKey:"XXXXXXXXXXXX" })
let commands = [
'#!/bin/bash',
'#',
'# Ubuntu 14 LTS',
'#',
'set - v',
'sudo su -',
' nano squid.sh',
'chmod + x squid.sh',
'apt - get - y update',
'apt - get install - y ntpdate',
'apt - get install - y squid3 apache2 - utils',
'cp / etc / squid / squid.conf / etc / squid / squid.conf.bak',
'cat << EOF > /etc/squid / squid.conf',
'http_port 1052',
'http_access allow all',
'cache deny all',
'forwarded_for delete',
'request_header_access Via deny all',
'EOF',
'service squid restart',
'echo "IP ADDRESS"',
'curl ifconfig.co'
];
const params = {
ImageId: 'ami-08bc77a2c7eb2b1da',
InstanceType: 't3.nano',
MinCount: 1,
MaxCount: 1,
SubnetId: 'subnet-1885ea36',
UserData:new Buffer.from(commands.join("\n")).toString('base64'),
Placement: {
Tenancy: 'dedicated',
}
};
ec2.runInstances(params, function (err, data) {
if (err) {
console.log('Could not create instance', err);
return;
}
const instanceId = data.Instances[0].InstanceId;
console.log('Created instance', instanceId);
});
您如何在启动时执行脚本?如果是从用户数据配置的,请检查用户数据和云初始化日志中是否有任何错误。如果您正在使用诸如cron或daemon之类的任何其他技术执行脚本,则需要检查那些服务器日志中是否出现了任何错误。您可以在此处发布错误日志,以便我们可以准确了解脚本问题。
您应该将系统日志登录到EC2管理控制台中,并将服务器日志放置在/ var / log /。您可以发布错误日志,以便我们提供帮助。