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? 🙂

  • Come submit le chiavi pubbliche al server EC2?
  • Impostazione dei sottodomini all'interno di Amazon AWS Elastic Beanstalk
  • Qual è il modo più economico per ospitare progetti di hobby?
  • Hai bisogno di una raccomandazione per l'archiviazione condivisa su scala auto-scaling ec2 w / scalr
  • Server multipli sullo stesso porto, utilizzando un bilanciatore di carico elastico
  • Convertire il formato del file system sul disco di memorizzazione effimero AWS EC2 da ext3 a ext4
  • 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.