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