Come ottengo un elenco di server e il loro DNS pubblico con Amazon EC2

Ho un gruppo di istanze EC2 in un gruppo di sicurezza. Sto cercando un modo per get un elenco dei loro indirizzi DNS pubblici dalla row di command. Ho uno script che utilizza RSYNC per assicurarsi che un insieme di file venga aggiornato su questi server. Sono in un elastico bilanciatore di carico e la quantità di server nel gruppo cambia abbastanza che non voglio avere a mantenere l'elenco a mano. Voglio evitare di utilizzare AWK o SED per estrarre informazioni dalle istanze descritte da ec2, preferirei utilizzare direttamente l'API. Qualcuno ha dei grandi suggerimenti? 🙂

  • la mancata corrispondenza del burattino in ec2
  • ansible attacco UDP su BIND?
  • Il modo più semplice per visualizzare la pagina di manutenzione durante l'interruzione dell'istanza EC2
  • EBS + RAID10 + XFS più lento di EBS + RAID10 + EXT3 utilizzando MySQL?
  • Best Practice per la gestione di file AWS SSH .pem all'interno della squadra
  • Il certificato RSA configurato per SERVER NON include un ID che corrisponde al nome del server
  • EC2 Aggiorna l'attuale AMI
  • Gestione delle implementazioni di rolling con amazon EC2
  • 3 Solutions collect form web for “Come ottengo un elenco di server e il loro DNS pubblico con Amazon EC2”

    Il formato di output della row di command è abbastanza statico e puoi controllare quando potrebbe essere cambiato perché il toolkit è il tuo corpo. Conservo una copia degli strumenti api in un repository versione con qualsiasi software che ho scritto che lo usa, in questo modo lavorano sempre insieme in una determinata versione.

    Se decidi di andare in questo modo, ecco un semplice afferrare per get l'indirizzo pubblico DNS di tutto in esecuzione. Ovviamente potresti chiedere anche questo per un gruppo specifico.

    ec2-describe-instances | grep 'INSTANCE' | cut -f 4 

    Incase qualcuno sta cercando una soluzione, ho finito usando PHP SDK di Amazon. Consente di filtrare i risultati in base a molti criteri diversi. Ho semplicemente fatto una richiesta di istanza descritta, filtrando da un gruppo di protezione specifico (where il nome di gruppo di protezione è quello che desideri cercare!)

      // Get the response from a call to the DescribeInstances operation. $response = $ec2->describe_instances(arrays('Filter' => arrays(arrays('Name' => 'group-name ', 'Value' => 'security-group-name')))); 
     ec2din -F instance-state-name=running | grep -e TAG -e INSTANCE | sed -e 's/TAG//' | awk '{print $4}' 

    È inoltre ansible aggiungere filtri per il gruppo di sicurezza desiderato aggiungendo -F group-name = your-group

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.