#!/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