Angular, AWS und Symfony Freelancer

Kategorie: Server Administration

  • Yum Package suchen

    Mit diesem Befehl kann man nach yum Packeten suchen: yum search mysql | grep client

  • Monolog Logging für AWS Cloudwatch Logs konfigurieren

    Damit die Logs schön formatiert aus einer Symfony 4 Anwendung in AWS Cloudwatch ankommen, muss man Monolog folgendermaßen konfigurieren: # config/services.yaml Monolog\Formatter\JsonFormatter: calls: – [includeStacktraces] und # config/packages/prod/monolog.yaml monolog: handlers: main: type: stream level: error path: ‚%kernel.logs_dir%/error.log‘ formatter: Monolog\Formatter\JsonFormatter Danach muss man der Cloudwatch Daemon konfigurieren: # /etc/awslogs/awslogs.conf [general] # Path to the CloudWatch Logs…

  • 11 AWS Cloudformation Experten Tricks

    Bei meiner Arbeit mit Cloudfromation habe ich viel nützliche Tipps gesammelt, die ich gern teilen will. 1. Eine IDE mit Autocomplete verwenden Für die Jetbrains IDEs wie PHPStorm, Webstorm oder IntelliJ gibt es ein sehr gutes AWS Cloudfromation Plugin namens AWS Cloudfromation von Leonid Shalupov: Dieses biete Autocomplete für die IDE an und eine automatische…

  • Cloudformation reboot einer EC2 Instanz

    Damit eine Instanz neu neugestartet wird, nachdem die Einrichtung erfolgt ist, muss man folgende Befehl in die UserData Sektion eintragen im Cloudformation Template: UserData: # is executed as root user Fn::Base64: !Sub | #!/bin/bash -xe yum update -y aws-cfn-bootstrap /opt/aws/bin/cfn-init -v –stack ${AWS::StackName} –resource WebServerInstance –configsets InstallAndRun –region ${AWS::Region} /opt/aws/bin/cfn-signal -e $? –stack ${AWS::StackName} –resource…

  • AWS Lanbda erstellen eines Route53 A Records Eintrages

    Mit Hilfe der folgende Python AWS Lambda Funktion kann man einen A Record in Route53 erstellen/updaten: import json import boto3 route53 = boto3.client(‚route53‘) def lambda_handler(event, context):     print(„Received event: “ + json.dumps(event, indent=2))     domain = event[‚domain‘]     route53.change_resource_record_sets(         HostedZoneId=’HostedZoneId‘,         ChangeBatch={             ‚Comment‘: ‚Update or Insert an A Record‘,             ‚Changes‘: [                …

  • AWS Cloudfromation Template YAML Zeilenumbruch

    Um einen mehrzeiligen Text in Cloudformation Templates zu platzieren, gibt es eine elegante Lösung – der YAML >- Operator: /var/www/html/public/index.php: content: >- <html> <body> <h1>Welcome to the AWS CloudFormation PHP Sample</h1> <p/> <?php // Print out the current data and time print „The Current Date and Time is: <br/>“; print date(„g:i A l, F j…

  • AWS Opsworks ändert SSH Keys auf EC2 Instanzen

    Ich hatte gerade das Problem, dass ich mich nicht mehr mit meinem SSH Key auf meine EC2 Instanz einloggen konnte: Server refused our key Ich habe herausgefunden, dass es daran lag, dass ich AWS Opsworks Stacks ausprobiert hatte und genau diesen Key angebeben hatte für den neuen Stack. Meine Rettung war, dass man sich über…

  • AWS Zeitzone richtig einstellen Amazon Linux 2 und RDS MySQL PHP

    Damit in den Logs und in der Datenbank die korrekten Zeitstempel der eigenen Zeitzone verwendet werden, muss man 1. Die Systemzeit der EC2 Instanz konfigurieren sudo ln -sf /usr/share/zoneinfo/Europe/Berlin /etc/localtime und in der Datei /etc/sysconfig/clock die Zeitzone eintragen: sudo vi /etc/sysconfig/clock ZONE=“Europe/Berlin“ Danach muss ein Reboot der Instanz erfolgen: sudo reboot Die Anpassung kann überprüft…

  • letsencrypt AWS http challenge

    Ich hatte das Problem, dass beim Erneuern des Letsencrypt Zertifikates per Cronjob unter Amazon Linux 2 certbot renew –post-hook „systemctl reload httpd“  >> /var/log/certbot.log 2>&1 das SSL Zertifikat nicht erneuert wurde, sondern folgende Fehlermeldung auftrat: Could not choose appropriate plugin: The manual plugin is not working; there may be problems with your existing configuration. The…

  • PHP Skript als Windows-Dienst ausführen

    Unter Windows lassen sich Skripte, die endlos laufen sollen mit PHP mittels eines Dienstes realisieren. Dies hat den Vorteil, dass der Speicherverbrauch nicht mit der Zeit ins unendliche geht, bei endloser Skriptausführungen und eine Recovery und Restart Funktionalität implementiert werden kann, um den Dienst über lange Zeiträume am Laufen zu halten. Außerdem erhält der Dienst…