Cloudformation - создайте и запустите скрипт при запуске - PullRequest
0 голосов
/ 29 октября 2019

Я хочу запустить скрипт на запуске сервера EC2 через облачную информацию. Ниже скрипт не работает. Это не офисная работа. Это часть моих личных пристрастий. Это мой собственный сценарий, написанный с помощью подсказок из Интернета. Поскольку я не могу получить какую-либо другую помощь, я помещаю ее здесь.

"Resources": {
    "EC2Python001": {
        "Type": "AWS::EC2::Instance",
        "Metadata": {
            "AWS::CloudFormation::Init": {
                "config": {
                    "files": {
                        "/etc/script1.sh": {
                            "content": {
                                "Fn::Join": [
                                    "\n",
                                    [   "stack=", { "Ref" : "AWS::StackId" }, "\n",
                                        "region=", { "Ref" : "AWS::Region" }, "\n",
                                        "#!/bin/sh\n",
                                        "sudo adduser linuxuser\n",
                                        "sudo echo linuxpassword | passwd --stdin linuxuser \n",
                                        "sudo apt-get update\n",
                                        "sudo apt-get -y upgrade\n",
                                        "sudo apt-get install -y python3-pip\n",
                                        "sudo sed 's/.*PasswordAuthentication.*/PasswordAuthentication yes./' /etc/ssh/sshd_config \n"
                                        ]
                                ]
                            }
                        },
                        "mode": "000755",
                        "owner": "root",
                        "group": "root"
                    },
                    "commands": {
                        "RunScript1": {
                            "command": "sudo sh /etc/script1.sh"
                        }
                    }
                }
            },
            "AWS::CloudFormation::Designer": {
                "id": "4bdc1eed-05e4-47a5-8204-255584da0993"
            }
        },
        "Properties": {
            "AvailabilityZone": "us-east-2a",
            "ImageId": "ami-05c1fa8df71875112",
            "InstanceType": "t2.micro",
            "SourceDestCheck": false,
            "KeyName": "2410EC2Keypair",
            "SecurityGroupIds": [
                {
                    "Ref": "EC2SG2Python1"
                }
            ],
            "UserData"       : { "Fn::Base64" : { "Fn::Join" : ["", [
         "#!/bin/bash\n",
      "set -o errexit; set -o nounset; set -o pipefail\n",
      "# Install AWS cfn-bootstrap utilities\n",
      "sudo apt-get update\n",
      "sudo apt-get -y install python-pip\n",
      "sudo pip install https://s3.amazonaws.com/cloudformation-examples/aws-cfn-bootstrap-latest.tar.gz\n",
      "sudo cp /usr/local/init/ubuntu/cfn-hup /etc/init.d/cfn-hup \n",
      "sudo chmod +x /etc/init.d/cfn-hup \n",
      "sudo update-rc.d cfn-hup defaults \n ",
      "sudo service cfn-hup start \n",

      "/usr/local/bin/cfn-init",
      " --stack ", { "Ref": "AWS::StackName" },
      " --resource AppInstanceConfiguration",
      " --region ", { "Ref": "AWS::Region" }, "\n",

      "/usr/local/bin/cfn-signal -e $? ",
      "         --stack ", { "Ref" : "AWS::StackName" },
      "         --resource AppInstanceAutoScalingGroup",
      "         --region ", { "Ref" : "AWS::Region" }, "\n",
      "\n"
                ]]}}
        }
    },
    "EC2SG2Python1": {
        "Type": "AWS::EC2::SecurityGroup",
        "Properties": {
            "GroupName": "SecurityGroupwithEc2Py01",
            "GroupDescription": "First",
            "SecurityGroupIngress": [
                {
                    "CidrIp": "0.0.0.0/0",
                    "FromPort": "0",
                    "ToPort": "65535",
                    "IpProtocol": "tcp",
                    "Description": "From Anywhere"
                },
                {
                    "CidrIp": "0.0.0.0/0",
                    "FromPort": "22",
                    "ToPort": "22",
                    "IpProtocol": "tcp",
                    "Description": "SSH from anywhere , from and to port will be same - 22"
                }
            ]
        },
        "Metadata": {
            "AWS::CloudFormation::Designer": {
                "id": "808cc628-351e-4b25-9bbc-6b9345ae1dd2"
            }
        }
    }
}

}

Ожидаемый результат, сервер ubuntu с пользователем ssh создан. Фактический результат - секция пользовательских данных работает только до этой строки "sudo cp / usr / local / init / ubuntu / cfn-hup /etc/init.d/cfn-hup \ n"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...