簡體   English   中英

Terraform - EC2 user_data 和會話管理器(ssm-user)

[英]Terraform - EC2 user_data and Sessions Manager (ssm-user)

我正在使用Terraform在 AWS 上創建一個EC2 實例,其中包含用於安裝 dockeruser_data參數並將其分配給用戶 ssm-user。

我不想啟用 ssh 連接 (22) 並且我只啟用了通過系統管理器中的 Session 管理器進行訪問

這是 shell 腳本:

#!/bin/bash
set -ex
sudo yum update -y
sudo amazon-linux-extras install docker -y
sudo usermod -a -G docker ssm-user
sudo chown ssm-user:ssm-user /home/ssm-user/.docker -R
sudo chmod g+rwx "/home/ssm-user/.docker" -R
sudo chown ssm-user:docker /var/run/docker.sock
sudo systemctl enable docker
sudo systemctl start docker

但是,當我通過 Session 管理器訪問 EC2 實例並運行docker ps命令時,我收到以下錯誤:

無法連接到 unix:///var/run/docker.sock 處的 Docker 守護程序。 docker 守護程序是否正在運行?

為什么會發生這種情況,好像沒有執行任何操作?

您需要查看/var/log/cloud-init-output.log 它捕獲控制台輸出,並且您的腳本中可能有錯誤。 在這里查看更多。

它可能說user 'ssm-user' does not exist

順便說一句 - 你不需要sudouser data 命令以root身份運行

我遇到了同樣的問題,所以我想我會粘貼我的代碼更改以通過 user_data 創建ssm-user ,而不是等待 ssm session 啟動。

adduser -m ssm-user
tee /etc/sudoers.d/ssm-agent-users <<'EOF'
# User rules for ssm-user
ssm-user ALL=(ALL) NOPASSWD:ALL
EOF
chmod 440 /etc/sudoers.d/ssm-agent-users 
# Now adding the ssm-user works!
usermod -a -G docker ssm-user

我從ssm-agent github復制了代碼

通常,第一次啟動 ssm session 時會創建 ssm-user。 參考: 這里

在 2.3.612.0 及更高版本上,第一次在實例上啟動 session 時會創建 ssm-user 帳戶。 當 session 在 Session Manager(AWS Systems Manager 的一項功能)中啟動時,此 ssm-user 是默認 OS 用戶。

暫無
暫無

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

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