のホスト名を変更します。はプログラムで私がAWS Java SDKを使用してEC2インスタンス(アマゾンLinux)を作成することができる午前、新しく作成されたAWSインスタンス
RunInstancesRequest runInstancesRequest = new RunInstancesRequest()
.withInstanceType(InstanceType.valueOf("T2Micro"))
.withImageId("ami-12345abc")
.withMinCount(1)
.withMaxCount(1)
.withSecurityGroupIds("some-group")
.withKeyName("my-key")
RunInstancesResult runInstancesResult = ec2.runInstances(runInstancesRequest);
は、今私は、このように作成されたサーバーのhostname
のように変更することにしたいですよく、プログラム的に。手動でこれは可能ですAWS documentation。私はこれを自動化したいので、私は使用してみてくださいuser data shell scriptsとして:
RunInstancesRequest runInstancesRequest = new RunInstancesRequest()
.withInstanceType(InstanceType.valueOf("T2Micro"))
......
.withUserData(getUserDataScript());
RunInstancesResult runInstancesResult = ec2.runInstances(runInstancesRequest);
private static String getUserDataScript() {
String str = "#!/bin/bash\n" +
"sudo sed -i -e 's/[before]/after/' /etc/sysconfig/network\n" +
"sudo init 6";
return Base64.getEncoder().encodeToString(str.getBytes());
}
トラブルは、今私はもはやそう作成したインスタンスにログインできないということです。ただconnection refused
というエラーがあります。キーと詳細のチェック - ユーザーデータスクリプトを提供しないとログインできます。
は私が正しくホスト名を変更するのですか?これを自動化する他の方法はありますか?
、Linuxディストリビューション上で動作することを確認するためのコマンドを実行してお勧め:今私は、ログインすることができていますが、それは大体15分程度かかる - 作成する際に高すぎる私が待機する値を例えば私のプログラム – User528491