我正在编写一个自动化脚本来下载 aws cloud-hsm 客户端和 pcks,以便为保管库企业部署执行 aws-cloudhsm-client init-container。
目标是自动化 HSM 集成的配置和设置,以供保管库参考。
这是一份详细说明如何操作的指南。
https://github.com/jacobmammoliti/aws-vault-cloudhsm
我的问题是 cloud-hsm 客户端提供的 cloud-hsm cli 在执行更改密码命令时没有自动是功能。为了自动执行此操作,我将它放在 EOF 块中以执行内联脚本,以使用启动脚本中的 cloud-hsm cli 对其进行配置。
问题是我试图用来yes |
回答提示,但我认为 EOF 内联脚本方法不支持它,我试图找到另一种解决方法,因为 cloud-hsm cli 不支持它,这有点愚蠢的。
这是我从 Kubernetes 集群内的 ubuntu:18.04 shell 运行的测试 bash 脚本,用于测试自动化。HSM 位于专用网络上,因此我使用 pod 位于 HSM 网络内。
apt update -y
apt-get install wget -y
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh -ab
export PATH=~/miniconda3/bin:${PATH}
python --version
wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/Bionic/cloudhsm-client_latest_u18.04_amd64.deb
wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/Bionic/cloudhsm-client-pkcs11_latest_u18.04_amd64.deb
apt install -y ./cloudhsm-client_latest_u18.04_amd64.deb
apt install -y ./cloudhsm-client-pkcs11_latest_u18.04_amd64.deb
export CLOUD_HSM_IP='HSM_IP'
export CUSTOMER_CA="base64encodedca"
export VAULT_DEFAULT_ADMIN_PASSWORD='password'
export VAULT_HSM_ADMIN_PASSWORD='myadminpassword'
export VAULT_USER='vault'
export VAULT_HSM_PASSWORD='myadminpassword'
echo "Configure Cloud HSM $CLOUD_HSM_IP"
/opt/cloudhsm/bin/configure -a ${CLOUD_HSM_IP}
echo "Config File"
cat /opt/cloudhsm/etc/cloudhsm_mgmt_util.cfg
echo "Echo Customer CA"
echo "${CUSTOMER_CA}" | base64 --decode > /opt/cloudhsm/etc/customerCA.crt
echo "Cat Customer CA"
cat /opt/cloudhsm/etc/customerCA.crt
echo "Execute cloudhsm cli"
echo "
yes | /opt/cloudhsm/bin/cloudhsm_mgmt_util /opt/cloudhsm/etc/cloudhsm_mgmt_util.cfg <<'EOF'
enable_e2e
loginHSM PRECO admin ${VAULT_DEFAULT_ADMIN_PASSWORD}
changePswd PRECO admin ${VAULT_HSM_ADMIN_PASSWORD}
logoutHSM
loginHSM CO admin ${VAULT_HSM_ADMIN_PASSWORD}
createUser CU ${VAULT_USER} ${VAULT_HSM_PASSWORD}
logoutHSM
quit
EOF
" > configure_hsm
cat configure_hsm
yes | bash configure_hsm
service cloudhsm-client start
问题:
yes |
由于 cloud-hsm 是其自己的 cli,因此无法解决此问题,我该如何解决?