簡體   English   中英

使用packer將文件從主機復制到生成的映像,無需密碼

[英]Using packer to copy file from host to generated image without password

我目前正在使用packer從給定配置生成自定義圖像。 packer .json文件包含本包裝程序教程中描述的條款。

我沒有在那里輸入命令,而是使用shell選項,我可以在其中編寫一堆sudo apt-get install命令來自定義圖像。

問題是我需要將文件從我擁有的計算機復制到圖像中。 要清楚,我擁有的計算機也是我正在運行命令packer build example.json

在shell腳本中,如何進行安全復制,以便從新創建的圖像的角度來看 ,圖像可以安全地將文件從我的計算機復制到自身, 無需輸入密碼? 這是一個shell腳本,所以如果我願意,我就無法輸入。

我知道為了避免輸入密碼,我需要公鑰/私鑰驗證。 在shell腳本中,我有:

sudo ssh-keygen -t rsa -b 2048
sudo scp ~/.ssh/id_rsa.pub user@example.com:/home/user/.ssh/uploaded_key.pub
sudo ssh user@example.com "echo `cat ~/.ssh/uploaded_key.pub` >> ~/.ssh/authorized_keys"

(摘自此處和其他地方的示例 。我對此的理解是生成的圖像正在運行這些命令。)

我在StackOverflow上看到的這個和許多方法的問題,例如與這個相關的問題 ,是兩件事之一。

  • 這種公共/私有身份驗證一次發生時,似乎需要密碼。 但是,這完全是在shell腳本中完成的,所以我不知道如何避免它。
  • packer會動態生成這些圖像,因此需要我為sshscp鍵入顯式AMI ID的其他方法似乎不起作用。

一個密切相關的問題使用“文件”提供類型,但我想用“shell”類型執行此操作,我不知道如何使用文件和shell選項。

我怎么解決這個問題?

您應該使用file配置器,例如:

"provisioners": [
  {
    "type": "file",
    "source": "source_file",
    "destination": "dest"
  },
  {
    "type": "script",
    "inline": [ "echo do something here" ]
  }
]

請參閱文檔:供應商

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM