Bir örneğin Genel DNS adresini almanın bir yolu var mı?


18

Bir EC2 örneği geçerli örneğin Genel DNS adresiyle her önyüklendiğinde yapılandırma dosyalarını güncellemem gereken bir projem var. Bunun için Perl veya Sed kullanacağım, bu gerçekten soru değil, ama asıl soru şudur: Örneğin genel DNS adresini belirleyebileceğim bir yol var mı? Örneği belirlemek için erişebileceğim bir EC2 api var mı?

Yanıtlar:


27

Var. Örneğin içinden şunları çalıştırabilirsiniz:

curl http://169.254.169.254/latest/meta-data/public-ipv4

Genel DNS ana bilgisayar adını almak için bunu şu şekilde değiştirebilirsiniz:

curl http://169.254.169.254/latest/meta-data/public-hostname

Örnek için özel IP'yi de alabilirsiniz:

curl http://169.254.169.254/latest/meta-data/local-ipv4

Bir yan not olarak, http://ip4.me gibi internette AWS olmayan bir siteye göre tekrar kontrol edebilirsiniz.

#!/bin/bash

pubip=$( curl http://ip4.me 2>/dev/null | sed -e 's#<[^>]*>##g' | grep '^[0-9]' )

echo $pubip

Bu, genellikle, herhangi bir NATed sisteminin "genel IP" sini kontrol etmek veya genel proxy IP'nizi vb. Bulmak için işe yarar.

Amazon'un API'sından edinebileceğiniz bilgi türlerini okumak için iyi bir bağlantı: http://www.ducea.com/2009/06/01/howto-update-dns-hostnames-automatically-for-your- amazon-EC2-örneklerini /


1
PUBLIC_HOSTNAME="$(curl http://169.254.169.254/latest/meta-data/public-hostname 2>/dev/null)":) Siz, efendim, metaldiniz.
Naftuli Kay

Yardım sevindim :)
Tim Kennedy

2

Bu işlevi genel ip ve dns almak için benim .bashrc içinde tanımlayın:

export PUBLIC_DNS=`curl http://169.254.169.254/latest/meta-data/public-hostname 2>/dev/null`
export PUBLIC_IP=`curl http://169.254.169.254/latest/meta-data/public-ipv4 2>/dev/null`

function get-pub() {
  if [ $# -ne 1 ]; then
    echo "Invalid number of arguments"
    return 1
  else
    case $1 in
      dns)
        echo $PUBLIC_DNS
        ;;
      ip)
        echo $PUBLIC_IP
        ;;
      *)
        echo $"Usage: get-pub {dns|ip}"
        return 2
    esac;
  fi
  return 0
}

1

AWS CLI ( aws configure) yükleyip yapılandırabilir ve aşağıdaki komutu kullanabilirsiniz:

aws ec2 describe-instances --instance-id i-0xyz --query 'Reservations[].Instances[].PublicDnsName' --output text
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.