0

I've been trying to use the stock templates from the wso2 website to deploy wso2 to AWS. The CloudFormation stack fails to create because the auto scaler fails to create.

I checked the EC2 instances and the actual instance is running and healthy.

I SSH'ed to the instance and ran:

grep -ni 'error\|failure' $(sudo find /var/log -name cfn-init\* -or -name cloud-init\*)

to check the log files for errors or failures. I didn't find any.

I then tried to run:

/usr/bin/cfn-signal -e $? --stack ${AWS::StackName} --resource WSO2MINode1AutoScalingGroup --region ${AWS::Region}

from the correct instance. I filled in the correct information manually when I ran the command on the instance. I pulled this command from the YAML file from the wso2 website. This command returned an Access Denied error for the stack.

Any help would be greatly appreciated. I feel like I'm over looking something simple. I included the LaunchConfiguration and the template for the Auto Scaling group below if that's useful. Happy to provide other information.

WSO2MINode1LaunchConfiguration:
    Type: 'AWS::AutoScaling::LaunchConfiguration'
    Properties:
      ImageId: !FindInMap
        - WSO2APIMAMIRegionMap
        - !Ref 'AWS::Region'
        - !Ref OperatingSystem
      InstanceType: !Ref WSO2InstanceType
      BlockDeviceMappings:
        - DeviceName: /dev/sda1
          Ebs:
            VolumeSize: '20'
            VolumeType: gp2
            DeleteOnTermination: 'true'
      KeyName: !Ref KeyPairName
      SecurityGroups:
        - !Ref WSO2MISecurityGroup
      UserData: !Base64
        'Fn::Sub': |
          Content-Type: multipart/mixed; boundary="//"
          MIME-Version: 1.0

          --//
          Content-Type: text/cloud-config; charset="us-ascii"
          MIME-Version: 1.0
          Content-Transfer-Encoding: 7bit
          Content-Disposition: attachment; filename="cloud-config.txt"

          #cloud-config
          cloud_final_modules:
          - [scripts-user, always]

          --//
          Content-Type: text/x-shellscript; charset="us-ascii"
          MIME-Version: 1.0
          Content-Transfer-Encoding: 7bit
          Content-Disposition: attachment; filename="userdata.txt"
          #!/bin/bash
          exec > >(tee /var/log/user-data.log|logger -t user-data -s 2>/dev/console) 2>&1
          export PATH=~/.local/bin:$PATH
          if [[ ${OperatingSystem} == "Ubuntu1804" ]]; then
              export DEBIAN_FRONTEND=noninteractive
              apt-get update
              apt install -y puppet nfs-common
              apt install -y python-pip
              apt install -y python3-pip
              pip3 install boto3
              pip install boto3
              sed -i '/\[main\]/a server=puppet' /etc/puppet/puppet.conf
          fi
          if [[ ${OperatingSystem} == "CentOS7" ]]; then
              yum install -y epel-release zip unzip nfs-utils
              yum install -y python-pip
              pip install boto3
              rpm -Uvh https://yum.puppetlabs.com/puppet5/puppet5-release-el-7.noarch.rpm
              yum install -y puppet-agent
              echo $'[main]\nserver = puppet\ncertname = agent3\nenvironment = production\n\runinterval = 1h' > /etc/puppetlabs/puppet/puppet.conf
          fi
          pip install https://s3.amazonaws.com/cloudformation-examples/aws-cfn-bootstrap-latest.tar.gz
          export PuppetmasterIP=${PuppetMaster.PrivateIp}
          echo "$PuppetmasterIP puppet puppetmaster" >> /etc/hosts
          export MI_HOST=${WSO2APIMLoadBalancer.DNSName}
          export MI_PORT=8290
          service puppet restart
          sleep 150
          export FACTER_profile=mi
          if [[ ${OperatingSystem} == "Ubuntu1804" ]]; then
              puppet agent -vt >> /var/log/puppetlog.log
          fi
          if [[ ${OperatingSystem} == "CentOS7" ]]; then
              /opt/puppetlabs/bin/puppet agent -vt >> /var/log/puppetlog.log
          fi
          sleep 30
          service puppet stop
          sh /usr/lib/wso2/wso2am/4.1.0/wso2mi-4.1.0/bin/micro-integrator.sh start
          if [[ ${OperatingSystem} == "Ubuntu1804" ]]; then
              echo "/usr/local/bin/cfn-signal -e $? --stack ${AWS::StackName} --resource WSO2MINode1AutoScalingGroup --region ${AWS::Region}" >> /home/ubuntu/cfn-signal.txt
              /usr/local/bin/cfn-signal -e $? --stack ${AWS::StackName} --resource WSO2MINode1AutoScalingGroup --region ${AWS::Region}
          fi
          if [[ ${OperatingSystem} == "CentOS7" ]]; then
              /usr/bin/cfn-signal -e $? --stack ${AWS::StackName} --resource WSO2MINode1AutoScalingGroup --region ${AWS::Region}
          fi
          echo 'export HISTTIMEFORMAT="%F %T "' >> /etc/profile.d/history.sh
          cat /dev/null > ~/.bash_history && history -c
    DependsOn:
      - WSO2MISecurityGroup
      - WSO2APIMSecurityGroup
      - PuppetMaster
  WSO2MINode1AutoScalingGroup:
    Type: 'AWS::AutoScaling::AutoScalingGroup'
    Properties:
      LaunchConfigurationName: !Ref WSO2MINode1LaunchConfiguration
      DesiredCapacity: 1
      MinSize: 1
      MaxSize: 1
      VPCZoneIdentifier:
        - !Ref WSO2APIMPrivateSubnet1
        - !Ref WSO2APIMPrivateSubnet2
      Tags:
        - Key: Name
          Value: !Sub ${EnvironmentName} WSO2MIInstance
          PropagateAtLaunch: 'true'
    CreationPolicy:
      ResourceSignal:
        Count: 1
        Timeout: PT30M
    UpdatePolicy:
      AutoScalingRollingUpdate:
        MaxBatchSize: '2'
        MinInstancesInService: '1'
        PauseTime: PT10M
        SuspendProcesses:
          - AlarmNotification
        WaitOnResourceSignals: false
    DependsOn:
      - WSO2APIMNode1AutoScalingGroup
      - WSO2APIMNode2AutoScalingGroup

Thank you!

grungy
  • 1

0 Answers0