2017-09-15 4 views
0

J'utilise des scripts AWS CloudFormation pour afficher une EC2 Auto Scaling instance - code fourni ci-dessousCloudFormation fichiers de configuration Init ne pas écrire les fichiers

"GatewayLabAutoScalingGroup": { 
    "Metadata": { 
    "AWS::CloudFormation::Init": { 
     "config": { 
     "commands": { 
      "a_install_pip": { 
      "command": "pip install requests boto3" 
      }, 
      "c_restart_cron": { 
      "command": "service crond restart" 
      }, 
      "d_restart_cfn_hup": { 
      "command": "service cfn-hup restart" 
      } 
     }, 
     "files": { 
      "/etc/cfn/cfn-hup.conf": { 
      "content": { 
       "Fn::Join": [ 
       "", 
       [ 
        "[main]\nstack=", 
        { 
        "Ref": "AWS::StackName" 
        }, 
        "\nregion=", 
        { 
        "Ref": "AWS::Region" 
        }, 
        "\nverbose=true\ninterval=1\n" 
       ] 
       ] 
      }, 
      "group": "root", 
      "mode": "000644", 
      "owner": "root" 
      }, 
      "/usr/local/sbin/join_ad_script.sh": { 
      "content": { 
       "Fn::Join": [ 
       "", 
       [ 
        "sudo yum -y update\nsudo yum -y install sssd realmd krb5-workstation\nsudo realm leave\n\nDOMAIN=\"", 
        { 
        "Ref": "SimpleADDomain" 
        }, 
        "\"\n\ncat <<EOF > /etc/resolv.conf\nnameserver ", 
        { 
        "Fn::Select": [ 
         0, 
         { 
         "Fn::GetAtt": [ 
          "WorkspacesSimplead", 
          "DnsIpAddresses" 
         ] 
         } 
        ] 
        }, 
        "\nnameserver ", 
        { 
        "Fn::Select": [ 
         1, 
         { 
         "Fn::GetAtt": [ 
          "WorkspacesSimplead", 
          "DnsIpAddresses" 
         ] 
         } 
        ] 
        }, 
        "\nEOF\n\n# empty all current sssd cache\nsss_cache -E\n\necho ", 
        { 
        "Ref": "SimpleADPassword" 
        }, 
        " | sudo realm join -U [email protected]${DOMAIN^^} ${DOMAIN^^} --verbose\nsudo sed -re 's/^(PasswordAuthentication)([[:space:]]+)no/\\1\\2yes/' -i.`date -I` /etc/ssh/sshd_config\necho \"enumerate=true\" >> /etc/sssd/sssd.conf\nsudo service sssd restart\nsudo service sshd restart\n\n# empty all current sssd cache\nsss_cache -E\n" 
       ] 
       ] 
      }, 
      "group": "root", 
      "mode": "000755", 
      "owner": "root" 
      } 
     } 
     } 
    } 
    }, 
    "Properties": { 
    "AvailabilityZones": [ 
     { 
     "Fn::Select": [ 
      0, 
      { 
      "Fn::GetAZs": "" 
      } 
     ] 
     } 
    ], 
    "HealthCheckGracePeriod": 300, 
    "HealthCheckType": "EC2", 
    "LaunchConfigurationName": { 
     "Ref": "GatewayLabLaunchConfiguration" 
    }, 
    "LoadBalancerNames": [ 

    ], 
    "MaxSize": 2, 
    "MinSize": 1, 
    "Tags": [ 
     { 
     "Key": "Name", 
     "PropagateAtLaunch": true, 
     "Value": "hub-autoscaling" 
     } 
     } 
    ], 
    "VPCZoneIdentifier": [ 
     { 
     "Ref": "EC2SubnetSubnet1" 
     } 
    ] 
    }, 
    "Type": "AWS::AutoScaling::AutoScalingGroup", 
    "UpdatePolicy": { 
    "AutoScalingRollingUpdate": { 
     "MaxBatchSize": 1, 
     "MinInstancesInService": 1, 
     "PauseTime": "PT60S" 
    } 
    } 
} 

Les fichiers ne sont pas écrits dans l'instance L'instance est à venir dans un VPC Nous avons un proxy privé configuré sur le port 8080

le fonctionne très bien lorsque l'instance est connecté à une passerelle NAT sans proxy

J'ai ports 80, 22 & 443 a ouvert

+0

Avez-vous vérifié le '/ var/log/fichier nuage-init-output.log' sur l'instance? Ce serait un bon point de départ pour comprendre pourquoi il ne pouvait pas placer les fichiers sur l'instance. – asdf

+0

Merci @asdf J'ai fait cela; le cfn utilise 169.254.169.254 pour interroger les métadonnées et il échoue; L'instance est derrière un proxy; J'ai créé proxy.sh sur /etc/profile.d avec des variables de proxy http/ftp exportées dans l'environnement Il y a d'autres problèmes et j'ai du mal à les photographier – DWGuru

Répondre

0

les déclarations userdata sont d'abord exécuter Ils appellent alors les scripts CFN-init

Il y avait quelques erreurs dans les scripts et ils jamais été terminés; l'un des problèmes mentionnés ci-dessus était mon exemple derrière un proxy

Obtenir la configuration du proxy dans le cadre du UserData aidé