尝试在EC2实例上运行shell脚本

问题描述 投票:0回答:1

我正在尝试使用我拥有的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);
});
node.js shell amazon-ec2 proxy squid
1个回答
0
投票

您如何在启动时执行脚本?如果是从用户数据配置的,请检查用户数据和云初始化日志中是否有任何错误。如果您正在使用诸如cron或daemon之类的任何其他技术执行脚本,则需要检查那些服务器日志中是否出现了任何错误。您可以在此处发布错误日志,以便我们可以准确了解脚本问题。


0
投票

您应该将系统日志登录到EC2管理控制台中,并将服务器日志放置在/ var / log /。您可以发布错误日志,以便我们提供帮助。

© www.soinside.com 2019 - 2024. All rights reserved.