
我有一個 AWS EC2 映像,已轉換為 VirtualBox 並在本地運行。它工作得很好,只是我不知道如何在啟動時禁用對 AWS 元資料服務的呼叫:
2015-09-25 19:29:29,932 - url_helper.py[WARNING]: Calling 'http://169.254.169.254/2009-04-04/meta-data/instance-id' failed [50/120s]: request error [(<urllib3.connectionpool.HTTPConnectionPool object at 0x7fb78650efd0>, 'Connection to 169.254.169.254 timed out. (connect timeout=50.0)')]
2015-09-25 19:30:20,987 - url_helper.py[WARNING]: Calling 'http://169.254.169.254/2009-04-04/meta-data/instance-id' failed [101/120s]: request error [(<urllib3.connectionpool.HTTPConnectionPool object at 0x7fb78652cb90>, 'Connection to 169.254.169.254 timed out. (connect timeout=50.0)')]
2015-09-25 19:30:39,011 - url_helper.py[WARNING]: Calling 'http://169.254.169.254/2009-04-04/meta-data/instance-id' failed [119/120s]: request error [(<urllib3.connectionpool.HTTPConnectionPool object at 0x7fb78650ee10>, 'Connection to 169.254.169.254 timed out. (connect timeout=17.0)')]
2015-09-25 19:30:40,015 - DataSourceEc2.py[CRITICAL]: Giving up on md from ['http://169.254.169.254/2009-04-04/meta-data/instance-id'] after 120 seconds
2015-09-25 19:31:43,509 - util.py[WARNING]: Failed to fetch password from virtual router 192.168.128.1
我可以在 cloud-init 的哪裡停用這些功能?這些呼叫最終會逾時,但會導致 VirtualBox 映像的啟動時間超過 2 分鐘。
答案1
答案2
對於一次性虛擬機,@ching 的答案很好。但是,如果您正在製作模板並且需要 cloud-init 為您配置內容,那麼“正確”的方法是在/etc/cloud/cloud.cfg.d/
.中的檔案/etc/cloud/cloud.cfg.d/
將覆蓋 中的值/etc/cloud.cfg
。
例子:
價值在/etc/cloud/cloud.cfg
datasource_list: [ Ec2, None ]
新文件/etc/cloud/cloud.cfg.d/99_overrides.cfg
datasource_list: [ None ]
您可以在此處新增其他供應商,而不是 Ec2 - VMware、ConfigDrive 等,這對於像使用 EC2 元資料一樣配置內容非常方便。
看:https://cloudinit.readthedocs.io/en/latest/topics/datasources.html
答案3
systemctl disable cloud-config.service
systemctl disable cloud-final.service
systemctl disable cloud-init.service
systemctl disable cloud-init-local.service