vault.sh
#!/bin/bash
# Purpose: Vault Quick Setup
# OS Ubuntu
echo " This script is for Vault setup on docker container"
echo ""
echo "lets start the process"
sleep 3
# Docker installation
if docker --version > /dev/null
then
echo "Docker is already installed"
else
sudo apt-get update
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo \
"deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce
sudo systemctl start docker
sudo systemctl enable docker
fi
# Docker Compose Installation
if sudo docker-compose --version > /dev/null
then
echo " Docker compose is already installed "
else
curl -L "https://github.com/docker/compose/releases/download/1.25.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
docker-compose --version
fi
#Vault Setup
mkdir -p "${PWD}"/vault/{config,file,logs}
touch "${PWD}"/vault/docker-compose.yml
echo "{
\"listener\": [{
\"tcp\": {
\"address\" : \"0.0.0.0:8200\",
\"tls_disable\" : 1
}
}],
\"api_addr\": \"https://"$IP":8200\",
\"storage\": {
\"file\": {
\"path\" : \"/opt/vault-data\"
}
},
\"max_lease_ttl\": \"10h\",
\"default_lease_ttl\": \"10h\",
\"ui\":true
}" > ${PWD}/vault/config/vault.json
cat << EOF > "${PWD}"/vault/docker-compose.yml
version: '3.7'
services:
vault:
image: vault:latest
container_name: vault
ports:
- "8200:8200"
restart: unless-stopped
volumes:
- ./logs:/vault/logs
- ./file:/vault/file
- ./config:/vault/config
cap_add:
- IPC_LOCK
entrypoint: vault server -config=/vault/config/vault.json
EOF
cd "${PWD}"/vault
docker-compose up -d
docker ps