Create basic Docker environment
Creates a Debian 10 environment with Docker and Docker Compose
This commit is contained in:
commit
497edc66ad
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
.vagrant
|
23
Vagrantfile
vendored
Normal file
23
Vagrantfile
vendored
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
# -*- mode: ruby -*-
|
||||||
|
# vi: set ft=ruby :
|
||||||
|
|
||||||
|
Vagrant.configure("2") do |config|
|
||||||
|
config.vm.box = "debian/buster64"
|
||||||
|
config.vm.synced_folder ".", "/vagrant", disabled: true
|
||||||
|
|
||||||
|
# Machine Name
|
||||||
|
config.vm.define :moxie do |moxie| #
|
||||||
|
end
|
||||||
|
|
||||||
|
# Disable Machine Name Prefix
|
||||||
|
config.vm.provider :libvirt do |libvirt|
|
||||||
|
libvirt.default_prefix = ""
|
||||||
|
end
|
||||||
|
|
||||||
|
# Provision with Ansible
|
||||||
|
config.vm.provision "ansible" do |ansible|
|
||||||
|
ansible.compatibility_mode = "2.0"
|
||||||
|
ansible.playbook = "moxie.yml"
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
35
moxie.yml
Normal file
35
moxie.yml
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
# Copyright (C) 2019 Kris Lamoureux
|
||||||
|
#
|
||||||
|
# This program is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, version 3 of the License.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
- name: Install Moxie Server
|
||||||
|
hosts: all
|
||||||
|
become: true
|
||||||
|
|
||||||
|
# Install host requirements for playbooks
|
||||||
|
pre_tasks:
|
||||||
|
|
||||||
|
- name: 'Install Ansible dependency: python-apt'
|
||||||
|
shell: 'apt-get update && apt-get install python-apt -y'
|
||||||
|
args:
|
||||||
|
creates: /usr/lib/python2.7/dist-packages/apt
|
||||||
|
warn: false
|
||||||
|
|
||||||
|
- name: 'Install Ansible dependency: aptitude'
|
||||||
|
apt:
|
||||||
|
name: 'aptitude'
|
||||||
|
state: present
|
||||||
|
force_apt_get: true
|
||||||
|
|
||||||
|
roles:
|
||||||
|
- docker
|
1
roles/docker/docker-ce.list
Normal file
1
roles/docker/docker-ce.list
Normal file
@ -0,0 +1 @@
|
|||||||
|
deb [arch=amd64] https://download.docker.com/linux/debian buster stable
|
38
roles/docker/install-compose.sh
Normal file
38
roles/docker/install-compose.sh
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Github username and repo name
|
||||||
|
user="docker"
|
||||||
|
repo="compose"
|
||||||
|
|
||||||
|
# Retrieve the latest version number
|
||||||
|
addr="https://github.com/$user/$repo/releases/latest"
|
||||||
|
page=$(curl -s $addr | grep -o releases/tag/*.*\")
|
||||||
|
version=$(echo $page | awk '{print substr($1, 14, length($1) - 14)}')
|
||||||
|
|
||||||
|
# Download prep
|
||||||
|
url="https://github.com/$user/$repo/releases/download/$version"
|
||||||
|
file="docker-compose-$(uname -s)-$(uname -m)"
|
||||||
|
|
||||||
|
# Download latest Docker Compose if that version hasn't been downloaded
|
||||||
|
if [ ! -f /tmp/docker_compose_$version ]; then
|
||||||
|
curl -L $url/$file -o /tmp/docker-compose_$version
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Is it already installed?
|
||||||
|
if installed=$(which docker-compose); then
|
||||||
|
|
||||||
|
new_chksum=$(sha256sum /tmp/docker-compose_$version)
|
||||||
|
old_chksum=$(sha256sum /usr/local/bin/docker-compose)
|
||||||
|
|
||||||
|
# If checksums are different, delete and install new version
|
||||||
|
if [ ! "$new_chksum" = "$old_chksum" ]; then
|
||||||
|
rm /usr/local/bin/docker-compose
|
||||||
|
mv /tmp/docker-compose_$version /usr/local/bin/docker-compose
|
||||||
|
chmod +x /usr/local/bin/docker-compose
|
||||||
|
fi
|
||||||
|
|
||||||
|
else
|
||||||
|
# It's not installed, so no need to remove
|
||||||
|
mv /tmp/docker-compose_$version /usr/local/bin/docker-compose
|
||||||
|
chmod +x /usr/local/bin/docker-compose
|
||||||
|
fi
|
52
roles/docker/tasks/main.yml
Normal file
52
roles/docker/tasks/main.yml
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
# Copyright (C) 2019 Kris Lamoureux
|
||||||
|
#
|
||||||
|
# This program is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, version 3 of the License.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
- name: Remove old versions of Docker
|
||||||
|
apt:
|
||||||
|
name: ['docker', 'docker-engine', 'docker.io', 'containerd', 'runc']
|
||||||
|
state: absent
|
||||||
|
update_cache: true
|
||||||
|
|
||||||
|
- name: Install HTTPS capability for apt
|
||||||
|
apt:
|
||||||
|
name: ['apt-transport-https', 'ca-certificates',
|
||||||
|
'curl', 'gnupg2', 'software-properties-common']
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: Install Docker's signing key
|
||||||
|
apt_key:
|
||||||
|
url: https://download.docker.com/linux/debian/gpg
|
||||||
|
id: 9DC858229FC7DD38854AE2D88D81803C0EBFCD88
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: Install Docker's stable repository
|
||||||
|
template:
|
||||||
|
src: docker-ce.list
|
||||||
|
dest: /etc/apt/sources.list.d/docker-ce.list
|
||||||
|
|
||||||
|
- name: Install Docker CE
|
||||||
|
apt:
|
||||||
|
name: ['docker-ce', 'docker-ce-cli', 'containerd.io']
|
||||||
|
state: present
|
||||||
|
update_cache: true
|
||||||
|
|
||||||
|
- name: Add user to docker group
|
||||||
|
user:
|
||||||
|
name: vagrant
|
||||||
|
groups: docker
|
||||||
|
|
||||||
|
- name: Install docker-compose
|
||||||
|
script: install-compose.sh
|
||||||
|
args:
|
||||||
|
creates: /usr/local/bin/docker-compose
|
Loading…
Reference in New Issue
Block a user