在 EC2 上运行的 CentOS 上通过 Cloud-Init 命名的主机名不起作用

在 EC2 上运行的 CentOS 上通过 Cloud-Init 命名的主机名不起作用

我在 CentOS 6.4 的 EC2 实例的用户数据上设置了云配置,但看起来不适用。

#cloud-config
manage_etc_hosts: true
preserve_hostname: false
hostname: myserver01.example.com

在 cloud-init 日志中我看到:

cloud-init[DEBUG]: preserve_hostname is set. not managing hostname

我如何强制它设置主机名?

答案1

我还没有在 CentOS 6 AMI 上尝试过这个,但这适用于 CentOS 7:

NEWHOSTNAME="myserver01.example.com"

CLOUDTMP=`mktemp $TMPDIR/$(basename $0).XXXXXX 2>/dev/null` || exit 1

cat <<EOF > $CLOUDTMP 
#!/bin/bash
hostnamectl set-hostname $NEWHOSTNAME
echo "preserve_hostname: true" > /etc/cloud/cloud.cfg.d/99_hostname.cfg
EOF

aws ec2 run-instances --user-data file://$CLOUDTMP --cli-input-json file://path/to/file.json

相关内容