EC2でAmazon Linux(RHEL5ベース)を実行しています。
インスタンスのエラスティックIPを指す自分のドメイン名があります。 Amazonは、DHCPを介してインスタンスに一般的な(インターネットでは表示されない)ホスト名を自動割り当てします。
SMTPサーバーは実際の(およびパブリック)ホスト名を確認する必要があるため、この内部専用のホスト名は電子メールの送信を中断します。 「hostname」コマンドを手動で実行して実際のパブリックホスト名を設定することで、メールを修正できます。
/ etc/sysconfig/networkにHOSTNAMEを設定しましたが、DHCPホスト名がこれを上書きしているようです。
ホスト名を設定し、DHCPがそれについて何を言わなければならないかを常に無視し、それ以外の場合はDHCPを使用するための良い/正しい方法はありますか?
(DHCPの動作を元に戻すスクリプトを実行するなど、)実行する必要のある処理はたくさんあると思いますが、ホスト名を強制する実際の構成設定がどこにあるのか疑問に思います。
マイクの答えはよりよく聞こえ、おそらく機能しますが、問題が発生した場合は、いつでも大ハンマーを使用できます。 :)
追加
/bin/hostname HOSTNAME
に
/etc/rc.local
:)
これを試してください。
/etc/sysconfig/network-scripts/ifcfg-eth0
それから加えて
DHCP_HOSTNAME=Host.domain.com
それで解決するかどうか確認してください。
Centos 6、したがってRedhat 6の場合、新しいIPを取得するかDHCPを使用して再起動するたびに、ホストをローカルとして認識させたいホスト名は常に失われます。 (Redhat 5/Centos 5の情報も以下にあります)
(静的ホスト名に依存してバックアップなどをスクリプト化する場合、これは骨の折れる作業です)
Dhclientを使用していて、希望するlocalhostnameがDHCP提供のホスト名によって上書き(忘れられている)し続けている場合は、次に進んでください。
ローカルホスト名を強制するには(そしてDHCPに必要なIPを提供させるには)、ファイル/etc/dhcp/dhclient-eth0.conf
を変更(または作成)する必要があります。
(文字列eth0を、ホスト名を上書きするネットワークインターフェイスに置き換えます。eth0がほとんどの場合に機能します)
私のセットアップでは、この単純なファイルコンテンツが機能します:
interface "eth0"
{
supersede Host-name "myworkbox";
}
/etc/dhcp/dhclient-eth0.conf
に保存します。
Redhat 5/Centos 5を使用している場合は、同じことを試してください。ただし、ファイルの場所は/etc/dhclient-eth0.conf
にする必要があります。
これが発生する理由は、ファイルdhclient-${DEVICE}.conf
の/etc/sysconfig/network-scripts/ifup
を参照するセクションを表示するとわかります。
特定のIPアドレスを取得する必要がある場合は、dhclientのマンページを確認する必要があります。
CentOS 7 AMIの場合、次の行をコメント化して静的ホスト名を設定します。
- set_hostname
- update_hostname
/etc/cloud/cloud.cfg
。 YAMLのコメント文字は#
。
これは、通常のホスト名の設定に追加されます。
追加するだけ
PEERDNS="no"
/ etc/sysconfig/network-scripts/ifcfg-ethX(CentOS 6でテスト済み)
/etc/dhcp/dhclient-eth0.confの追加(AWS AMI(CentOS)の場合)、内容:
interface "eth0"
{
supersede Host-name "myworkbox";
}
(もちろんdhcpを使用している場合は)正常に動作するように見えました。ありがとう!