initial commit, docker playbook
This commit is contained in:
commit
3e65d1ae07
|
@ -0,0 +1,2 @@
|
||||||
|
# secret vars
|
||||||
|
vars.yml
|
|
@ -0,0 +1,21 @@
|
||||||
|
# Ansible Playbooks
|
||||||
|
|
||||||
|
A collection of Ansible playbooks I use to provision things.
|
||||||
|
|
||||||
|
## Ansible Docker Ubuntu
|
||||||
|
Ansible playbook to provision an standart Ubuntu LTS server VM.
|
||||||
|
|
||||||
|
- update and upgrade repo packages
|
||||||
|
- install basic necessities
|
||||||
|
- install `docker`
|
||||||
|
- install `docker compose`
|
||||||
|
- copy frequently used config files
|
||||||
|
|
||||||
|
### Setup
|
||||||
|
Copy or rename `vars.samle.yml` to `vars.yml` and set:
|
||||||
|
- **regular_user**: Default username
|
||||||
|
|
||||||
|
### Run on a single host
|
||||||
|
```
|
||||||
|
ansible-playbook -i $hostname, -K ansible-docker-ubuntu/playbook.yml
|
||||||
|
```
|
|
@ -0,0 +1,12 @@
|
||||||
|
---
|
||||||
|
|
||||||
|
- name: install basic docker environment
|
||||||
|
hosts: all
|
||||||
|
gather_facts: true
|
||||||
|
vars_files:
|
||||||
|
- vars.yml
|
||||||
|
roles:
|
||||||
|
- basic
|
||||||
|
- docker
|
||||||
|
- docker-compose
|
||||||
|
- userconf
|
|
@ -0,0 +1,53 @@
|
||||||
|
---
|
||||||
|
|
||||||
|
- block:
|
||||||
|
- name: "update cache"
|
||||||
|
apt:
|
||||||
|
update_cache: yes
|
||||||
|
cache_valid_time: 3600
|
||||||
|
|
||||||
|
- name: "upgrade all"
|
||||||
|
apt:
|
||||||
|
name: "*"
|
||||||
|
state: latest
|
||||||
|
register: upgraded
|
||||||
|
|
||||||
|
- name: "install basic packages"
|
||||||
|
apt:
|
||||||
|
name: "{{ packages }}"
|
||||||
|
state: present
|
||||||
|
vars:
|
||||||
|
packages:
|
||||||
|
- bmon
|
||||||
|
- build-essential
|
||||||
|
- curl
|
||||||
|
- htop
|
||||||
|
- iftop
|
||||||
|
- iotop
|
||||||
|
- mediainfo
|
||||||
|
- mlocate
|
||||||
|
- ranger
|
||||||
|
- rsync
|
||||||
|
- tmux
|
||||||
|
- trash-cli
|
||||||
|
- tree
|
||||||
|
- unzip
|
||||||
|
- vim
|
||||||
|
- whois
|
||||||
|
- zip
|
||||||
|
- zsh
|
||||||
|
|
||||||
|
- name: autoremove
|
||||||
|
apt:
|
||||||
|
autoremove: yes
|
||||||
|
|
||||||
|
- name: autoclean cache
|
||||||
|
apt:
|
||||||
|
autoclean: yes
|
||||||
|
|
||||||
|
- name: reboot the server
|
||||||
|
reboot:
|
||||||
|
when: upgraded is changed
|
||||||
|
|
||||||
|
become: true
|
||||||
|
become_user: root
|
|
@ -0,0 +1,38 @@
|
||||||
|
---
|
||||||
|
|
||||||
|
- block:
|
||||||
|
- name: "get newest release"
|
||||||
|
uri:
|
||||||
|
url: https://api.github.com/repos/docker/compose/releases/latest
|
||||||
|
return_content: true
|
||||||
|
register: json_reponse
|
||||||
|
|
||||||
|
- name: "get os"
|
||||||
|
command: uname -s
|
||||||
|
register: os
|
||||||
|
|
||||||
|
- name: "get arch"
|
||||||
|
command: uname -m
|
||||||
|
register: arch
|
||||||
|
|
||||||
|
- name: "create cli-plugins folder"
|
||||||
|
file:
|
||||||
|
path: /usr/local/lib/docker/cli-plugins
|
||||||
|
state: directory
|
||||||
|
|
||||||
|
- name: "download latest docker-compose"
|
||||||
|
get_url:
|
||||||
|
url: "https://github.com/docker/compose/releases/download/{{ json_reponse.json.tag_name }}/docker-compose-{{ os.stdout }}-{{ arch.stdout }}"
|
||||||
|
dest: /usr/local/lib/docker/cli-plugins/docker-compose
|
||||||
|
mode: '755'
|
||||||
|
|
||||||
|
- name: "get arch"
|
||||||
|
command: docker compose version
|
||||||
|
register: compose
|
||||||
|
|
||||||
|
- name: "latest docker-compose version"
|
||||||
|
debug:
|
||||||
|
msg: "installed docker compose version: {{ compose.stdout }}"
|
||||||
|
|
||||||
|
become: true
|
||||||
|
become_user: root
|
|
@ -0,0 +1,57 @@
|
||||||
|
---
|
||||||
|
|
||||||
|
- block:
|
||||||
|
- name: "install docker dependencies"
|
||||||
|
apt:
|
||||||
|
name: "{{ packages }}"
|
||||||
|
state: present
|
||||||
|
vars:
|
||||||
|
packages:
|
||||||
|
- ca-certificates
|
||||||
|
- curl
|
||||||
|
- gnupg
|
||||||
|
- lsb-release
|
||||||
|
|
||||||
|
- name: "add docker pgp key"
|
||||||
|
apt_key:
|
||||||
|
state: present
|
||||||
|
url: https://download.docker.com/linux/ubuntu/gpg
|
||||||
|
|
||||||
|
- name: "get release"
|
||||||
|
command: lsb_release -cs
|
||||||
|
register: release
|
||||||
|
|
||||||
|
- name: add docker repository to apt
|
||||||
|
apt_repository:
|
||||||
|
repo: deb https://download.docker.com/linux/ubuntu {{ release.stdout }} stable
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: "install docker dependencies"
|
||||||
|
apt:
|
||||||
|
update_cache: yes
|
||||||
|
name: "{{ packages }}"
|
||||||
|
state: present
|
||||||
|
vars:
|
||||||
|
packages:
|
||||||
|
- docker-ce
|
||||||
|
- docker-ce-cli
|
||||||
|
- containerd.io
|
||||||
|
|
||||||
|
- name: "ensure docker group exists"
|
||||||
|
group:
|
||||||
|
name: docker
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: "add user to group"
|
||||||
|
user:
|
||||||
|
name: "{{ regular_user }}"
|
||||||
|
groups: docker
|
||||||
|
append: yes
|
||||||
|
|
||||||
|
- name: "start docker if needed"
|
||||||
|
service:
|
||||||
|
name: docker
|
||||||
|
state: started
|
||||||
|
|
||||||
|
become: true
|
||||||
|
become_user: root
|
|
@ -0,0 +1,39 @@
|
||||||
|
---
|
||||||
|
|
||||||
|
- name: "create user folders"
|
||||||
|
file:
|
||||||
|
path: "{{ item }}"
|
||||||
|
state: directory
|
||||||
|
loop:
|
||||||
|
- bin
|
||||||
|
- docker
|
||||||
|
- docker
|
||||||
|
- logs
|
||||||
|
- script
|
||||||
|
|
||||||
|
- name: "add ignore"
|
||||||
|
lineinfile:
|
||||||
|
create: true
|
||||||
|
path: .gitignore
|
||||||
|
line: .cfg
|
||||||
|
|
||||||
|
- name: "clone zsh theme"
|
||||||
|
become: true
|
||||||
|
git:
|
||||||
|
repo: https://github.com/romkatv/powerlevel10k.git
|
||||||
|
dest: /usr/share/zsh-theme-powerlevel10k
|
||||||
|
|
||||||
|
- name: "clone dotfiles"
|
||||||
|
git:
|
||||||
|
repo: https://git.oikeo-projects.com/simon/dotfiles.git
|
||||||
|
dest: .cfg
|
||||||
|
bare: true
|
||||||
|
|
||||||
|
- name: "checkout dotfiles"
|
||||||
|
shell: git --git-dir=.cfg --work-tree=$HOME checkout
|
||||||
|
|
||||||
|
- name: change user shell to zsh
|
||||||
|
become: true
|
||||||
|
user:
|
||||||
|
name: "{{ regular_user }}"
|
||||||
|
shell: /bin/zsh
|
|
@ -0,0 +1,3 @@
|
||||||
|
---
|
||||||
|
|
||||||
|
regular_user: username
|
Loading…
Reference in New Issue