Update strucutre
This commit is contained in:
parent
633a61b6f2
commit
564069b828
24 changed files with 182 additions and 225 deletions
|
|
@ -1,5 +0,0 @@
|
||||||
parseable: true
|
|
||||||
quiet: true
|
|
||||||
skip_list:
|
|
||||||
- '501'
|
|
||||||
use_default_rules: true
|
|
||||||
2
.gitignore
vendored
2
.gitignore
vendored
|
|
@ -12,3 +12,5 @@ node_modules/
|
||||||
.vaults/
|
.vaults/
|
||||||
vault
|
vault
|
||||||
vaults/
|
vaults/
|
||||||
|
|
||||||
|
roles/
|
||||||
|
|
|
||||||
|
|
@ -3,40 +3,24 @@ stages:
|
||||||
- test
|
- test
|
||||||
|
|
||||||
cache:
|
cache:
|
||||||
key: "$CI_COMMIT_REF_SLUG"
|
key: $CI_COMMIT_REF_SLUG
|
||||||
paths:
|
paths:
|
||||||
- .cache/pip
|
- .cache/pip
|
||||||
- node_modules/
|
- node_modules/
|
||||||
|
|
||||||
lint:
|
lint:
|
||||||
stage: lint
|
|
||||||
image: python:3.7
|
|
||||||
before_script:
|
|
||||||
- pip install ansible ansible-lint --quiet
|
|
||||||
script:
|
|
||||||
- ansible-lint playbook.yml
|
|
||||||
only:
|
|
||||||
refs:
|
|
||||||
- development
|
|
||||||
- merge_requests
|
|
||||||
|
|
||||||
pretty-lint:
|
|
||||||
stage: lint
|
stage: lint
|
||||||
image: node:12
|
image: node:12
|
||||||
before_script:
|
before_script:
|
||||||
- npm install
|
- npm install prettier --no-save
|
||||||
script:
|
script:
|
||||||
- npx prettier "**/*.yml" --check
|
- npx prettier '**/*.yml' --check
|
||||||
only:
|
|
||||||
refs:
|
|
||||||
- development
|
|
||||||
- merge_requests
|
|
||||||
|
|
||||||
syntax-test:
|
syntax-test:
|
||||||
stage: test
|
stage: test
|
||||||
image: python:3.7
|
image: python:3.7
|
||||||
before_script:
|
before_script:
|
||||||
- pip install ansible ansible-lint --quiet
|
- pip install ansible --quiet
|
||||||
- ansible-galaxy install -r roles/requirements.yml
|
- ansible-galaxy install -r requirements.yml
|
||||||
script:
|
script:
|
||||||
- ansible-playbook playbook.yml --syntax-check
|
- ansible-playbook playbook.yml --syntax-check
|
||||||
|
|
|
||||||
|
|
@ -1,9 +0,0 @@
|
||||||
{
|
|
||||||
"singleQuote": true,
|
|
||||||
"printWidth": 90,
|
|
||||||
"tabWidth": 2,
|
|
||||||
"useTabs": false,
|
|
||||||
"bracketSpacing": true,
|
|
||||||
"parser": "yaml"
|
|
||||||
}
|
|
||||||
|
|
||||||
5
.prettierrc.yml
Normal file
5
.prettierrc.yml
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
singleQuote: true
|
||||||
|
printWidth: 90
|
||||||
|
tabWidth: 2
|
||||||
|
useTabs: false
|
||||||
|
bracketSpacing: true
|
||||||
|
|
@ -1,2 +1,5 @@
|
||||||
[defaults]
|
[defaults]
|
||||||
roles_path = ./roles
|
roles_path = ./roles
|
||||||
|
|
||||||
|
[privilege_escalation]
|
||||||
|
become_ask_pass = True
|
||||||
|
|
|
||||||
28
playbook.yml
28
playbook.yml
|
|
@ -1,3 +1,29 @@
|
||||||
- hosts: localhost
|
- hosts: localhost
|
||||||
|
pre_tasks:
|
||||||
|
- name: load OS specific vars
|
||||||
|
include_vars: '{{ item }}'
|
||||||
|
with_first_found:
|
||||||
|
- files:
|
||||||
|
- '{{ ansible_distribution|lower }}-{{ ansible_distribution_release|lower }}.yml'
|
||||||
|
- '{{ ansible_distribution|lower }}.yml'
|
||||||
|
- '{{ ansible_os_family|lower }}.yml'
|
||||||
|
paths:
|
||||||
|
- 'vars/'
|
||||||
|
- name: install packages
|
||||||
|
become: true
|
||||||
|
package:
|
||||||
|
name: '{{ item }}'
|
||||||
|
state: present
|
||||||
|
loop: '{{ packages }}'
|
||||||
roles:
|
roles:
|
||||||
- development
|
- common
|
||||||
|
- npm
|
||||||
|
tasks:
|
||||||
|
- import_tasks: 'tasks/main.yml'
|
||||||
|
- include_role:
|
||||||
|
name: common
|
||||||
|
tasks_from: 'poetry.yml'
|
||||||
|
- import_tasks: 'tasks/dotfiles.yml'
|
||||||
|
- import_tasks: 'tasks/coc.yml'
|
||||||
|
vars_files:
|
||||||
|
- 'vars/main.yml'
|
||||||
|
|
|
||||||
6
roles/.gitignore
vendored
6
roles/.gitignore
vendored
|
|
@ -1,6 +0,0 @@
|
||||||
# ignore all external roles and files in the roles dir
|
|
||||||
/*
|
|
||||||
|
|
||||||
!.gitignore
|
|
||||||
!requirements.yml
|
|
||||||
!development*/
|
|
||||||
|
|
@ -1,17 +0,0 @@
|
||||||
packages: []
|
|
||||||
|
|
||||||
xdg_config_dir: "{{ ansible_env.HOME }}/.config"
|
|
||||||
xdg_data_dir: "{{ ansible_env.HOME }}/.local/share"
|
|
||||||
|
|
||||||
dotfiles_repo: "git@git.fudiggity.nl:sonny/dotfiles.git"
|
|
||||||
githook_repo: "git@git.fudiggity.nl:sonny/git-hooks.git"
|
|
||||||
|
|
||||||
vim_plugins:
|
|
||||||
- { url: "https://github.com/preservim/nerdtree", name: "nerdtree" }
|
|
||||||
- { url: "https://github.com/neoclide/coc.nvim", name: "coc.nvim" }
|
|
||||||
- { url: "https://github.com/sheerun/vim-polyglot", name: "vim-polygot" }
|
|
||||||
|
|
||||||
poetry_packages:
|
|
||||||
- black
|
|
||||||
- pylint
|
|
||||||
- autoflake
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
|
|
||||||
|
|
@ -1,20 +0,0 @@
|
||||||
dependencies:
|
|
||||||
- npm
|
|
||||||
|
|
||||||
galaxy_info:
|
|
||||||
author: sonny
|
|
||||||
description: "Sets up development environment"
|
|
||||||
license: "license GPLv3"
|
|
||||||
min_ansible_version: 2.7
|
|
||||||
issue_tracker_url: "https://git.fudiggity.nl/sonny/ansible-playbooks/-/issues"
|
|
||||||
platforms:
|
|
||||||
- name: Debian
|
|
||||||
versions:
|
|
||||||
- buster
|
|
||||||
- name: Ubuntu
|
|
||||||
versions:
|
|
||||||
- focal
|
|
||||||
- name: Archlinux
|
|
||||||
galaxy_tags:
|
|
||||||
- development
|
|
||||||
- system
|
|
||||||
|
|
@ -1,33 +0,0 @@
|
||||||
- name: install coc.nvim node packages
|
|
||||||
npm:
|
|
||||||
path: "{{ xdg_data_dir }}/nvim/site/pack/default/start/coc.nvim"
|
|
||||||
state: present
|
|
||||||
global: false
|
|
||||||
|
|
||||||
- name: create default coc.nvim venv directory
|
|
||||||
file:
|
|
||||||
path: "{{ ansible_env.HOME }}/.local/lib/coc"
|
|
||||||
state: directory
|
|
||||||
mode: "0755"
|
|
||||||
|
|
||||||
- name: copy coc pyproject.toml
|
|
||||||
template:
|
|
||||||
src: "pyproject.j2"
|
|
||||||
dest: "{{ ansible_env.HOME }}/.local/lib/coc/pyproject.toml"
|
|
||||||
mode: "0644"
|
|
||||||
force: false
|
|
||||||
|
|
||||||
- name: set default venv python version
|
|
||||||
command: "poetry env use python3"
|
|
||||||
args:
|
|
||||||
chdir: "{{ ansible_env.HOME }}/.local/lib/coc"
|
|
||||||
environment:
|
|
||||||
PATH: "{{ ansible_env.HOME }}/.local/bin:{{ ansible_env.PATH }}"
|
|
||||||
when: ansible_distribution == "Debian"
|
|
||||||
|
|
||||||
- name: install default coc.nvim python packages # noqa 301
|
|
||||||
command: "poetry install"
|
|
||||||
args:
|
|
||||||
chdir: "{{ ansible_env.HOME }}/.local/lib/coc"
|
|
||||||
environment:
|
|
||||||
PATH: "{{ ansible_env.HOME }}/.local/bin:{{ ansible_env.PATH }}"
|
|
||||||
|
|
@ -1,53 +0,0 @@
|
||||||
- name: clone dotfiles
|
|
||||||
git:
|
|
||||||
repo: "{{ dotfiles_repo }}"
|
|
||||||
dest: "{{ ansible_env.HOME }}/dotfiles"
|
|
||||||
version: master
|
|
||||||
update: yes
|
|
||||||
|
|
||||||
- name: create dotfile folders
|
|
||||||
file:
|
|
||||||
state: directory
|
|
||||||
mode: "0755"
|
|
||||||
path: "{{ item }}"
|
|
||||||
loop:
|
|
||||||
- "{{ xdg_config_dir }}/nvim"
|
|
||||||
- "{{ xdg_data_dir }}/nvim/site"
|
|
||||||
- "{{ xdg_config_dir }}/kitty"
|
|
||||||
|
|
||||||
- name: setup dotfiles
|
|
||||||
file:
|
|
||||||
path: "{{ item.dest }}"
|
|
||||||
src: "{{ item.src }}"
|
|
||||||
mode: "0755"
|
|
||||||
state: link
|
|
||||||
force: true
|
|
||||||
loop:
|
|
||||||
- {
|
|
||||||
src: "{{ ansible_env.HOME }}/dotfiles/nvim/init.vim",
|
|
||||||
dest: "{{ xdg_config_dir }}/nvim/init.vim",
|
|
||||||
}
|
|
||||||
- {
|
|
||||||
src: "{{ ansible_env.HOME }}/dotfiles/.vimrc",
|
|
||||||
dest: "{{ ansible_env.HOME }}/.vimrc",
|
|
||||||
}
|
|
||||||
- {
|
|
||||||
src: "{{ ansible_env.HOME }}/dotfiles/.bashrc",
|
|
||||||
dest: "{{ ansible_env.HOME }}/.bashrc",
|
|
||||||
}
|
|
||||||
- {
|
|
||||||
src: "{{ ansible_env.HOME }}/dotfiles/.profile",
|
|
||||||
dest: "{{ ansible_env.HOME }}/.profile",
|
|
||||||
}
|
|
||||||
- {
|
|
||||||
src: "{{ ansible_env.HOME }}/dotfiles/nvim/colors",
|
|
||||||
dest: "{{ xdg_data_dir }}/nvim/site/colors",
|
|
||||||
}
|
|
||||||
- {
|
|
||||||
src: "{{ ansible_env.HOME }}/dotfiles/kitty.conf",
|
|
||||||
dest: "{{ xdg_config_dir }}/kitty/kitty.conf",
|
|
||||||
}
|
|
||||||
- {
|
|
||||||
src: "{{ ansible_env.HOME }}/dotfiles/.gitignore",
|
|
||||||
dest: "{{ ansible_env.HOME }}/.gitignore",
|
|
||||||
}
|
|
||||||
|
|
@ -1,54 +0,0 @@
|
||||||
- name: load OS specific vars
|
|
||||||
include_vars: "{{ item }}"
|
|
||||||
with_first_found:
|
|
||||||
- files:
|
|
||||||
- "{{ ansible_distribution|lower }}-{{ ansible_distribution_release|lower }}.yml"
|
|
||||||
- "{{ ansible_distribution|lower }}.yml"
|
|
||||||
- "{{ ansible_os_family|lower }}.yml"
|
|
||||||
paths:
|
|
||||||
- "{{ role_path }}/vars"
|
|
||||||
|
|
||||||
- name: add gitlab to known hosts
|
|
||||||
include_role:
|
|
||||||
name: common
|
|
||||||
tasks_from: known_hosts.yml
|
|
||||||
vars:
|
|
||||||
user: "{{ ansible_user_id }}"
|
|
||||||
items:
|
|
||||||
- { domain: "{{ gitlab_domain }}", key: "{{ gitlab_host_key }}" }
|
|
||||||
|
|
||||||
- name: install packages
|
|
||||||
become: true
|
|
||||||
package:
|
|
||||||
name: "{{ item }}"
|
|
||||||
state: present
|
|
||||||
loop: "{{ packages }}"
|
|
||||||
|
|
||||||
- name: create development dir
|
|
||||||
file:
|
|
||||||
path: "{{ ansible_env.HOME }}/development"
|
|
||||||
state: directory
|
|
||||||
mode: "0755"
|
|
||||||
|
|
||||||
- include_tasks: "dotfiles.yml"
|
|
||||||
|
|
||||||
- name: clone git hooks
|
|
||||||
git:
|
|
||||||
repo: "{{ githook_repo }}"
|
|
||||||
dest: "{{ ansible_env.HOME }}/development/git-hooks"
|
|
||||||
update: true
|
|
||||||
version: master
|
|
||||||
|
|
||||||
- name: clone neovim packages
|
|
||||||
git:
|
|
||||||
repo: "{{ item.url }}"
|
|
||||||
dest: "{{ xdg_data_dir }}/nvim/site/pack/default/start/{{ item.name }}"
|
|
||||||
version: master
|
|
||||||
update: true
|
|
||||||
loop: "{{ vim_plugins }}"
|
|
||||||
|
|
||||||
- include_role:
|
|
||||||
name: common
|
|
||||||
tasks_from: "poetry"
|
|
||||||
|
|
||||||
- include_tasks: coc.yml
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
gitlab_domain: "git.fudiggity.nl"
|
|
||||||
gitlab_host_key: "git.fudiggity.nl ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICNmvcxza79T7JZMkifmquwXH/kMUqDnKs9Oob+JrRvn"
|
|
||||||
33
tasks/coc.yml
Normal file
33
tasks/coc.yml
Normal file
|
|
@ -0,0 +1,33 @@
|
||||||
|
- name: install coc.nvim node packages
|
||||||
|
npm:
|
||||||
|
path: '{{ xdg_data_dir }}/nvim/site/pack/default/start/coc.nvim'
|
||||||
|
state: present
|
||||||
|
global: false
|
||||||
|
|
||||||
|
- name: create default coc.nvim venv directory
|
||||||
|
file:
|
||||||
|
path: '{{ ansible_env.HOME }}/.local/lib/coc'
|
||||||
|
state: directory
|
||||||
|
mode: '0755'
|
||||||
|
|
||||||
|
- name: copy coc pyproject.toml
|
||||||
|
template:
|
||||||
|
src: 'pyproject.j2'
|
||||||
|
dest: '{{ ansible_env.HOME }}/.local/lib/coc/pyproject.toml'
|
||||||
|
mode: '0644'
|
||||||
|
force: false
|
||||||
|
|
||||||
|
- name: set default venv python version
|
||||||
|
command: 'poetry env use python3'
|
||||||
|
args:
|
||||||
|
chdir: '{{ ansible_env.HOME }}/.local/lib/coc'
|
||||||
|
environment:
|
||||||
|
PATH: '{{ ansible_env.HOME }}/.local/bin:{{ ansible_env.PATH }}'
|
||||||
|
when: ansible_distribution == "Debian"
|
||||||
|
|
||||||
|
- name: install default coc.nvim python packages # noqa 301
|
||||||
|
command: 'poetry install'
|
||||||
|
args:
|
||||||
|
chdir: '{{ ansible_env.HOME }}/.local/lib/coc'
|
||||||
|
environment:
|
||||||
|
PATH: '{{ ansible_env.HOME }}/.local/bin:{{ ansible_env.PATH }}'
|
||||||
53
tasks/dotfiles.yml
Normal file
53
tasks/dotfiles.yml
Normal file
|
|
@ -0,0 +1,53 @@
|
||||||
|
- name: clone dotfiles
|
||||||
|
git:
|
||||||
|
repo: '{{ dotfiles_repo }}'
|
||||||
|
dest: '{{ ansible_env.HOME }}/dotfiles'
|
||||||
|
version: master
|
||||||
|
update: yes
|
||||||
|
|
||||||
|
- name: create dotfile folders
|
||||||
|
file:
|
||||||
|
state: directory
|
||||||
|
mode: '0755'
|
||||||
|
path: '{{ item }}'
|
||||||
|
loop:
|
||||||
|
- '{{ xdg_config_dir }}/nvim'
|
||||||
|
- '{{ xdg_data_dir }}/nvim/site'
|
||||||
|
- '{{ xdg_config_dir }}/kitty'
|
||||||
|
|
||||||
|
- name: setup dotfiles
|
||||||
|
file:
|
||||||
|
path: '{{ item.dest }}'
|
||||||
|
src: '{{ item.src }}'
|
||||||
|
mode: '0755'
|
||||||
|
state: link
|
||||||
|
force: true
|
||||||
|
loop:
|
||||||
|
- {
|
||||||
|
src: '{{ ansible_env.HOME }}/dotfiles/nvim/init.vim',
|
||||||
|
dest: '{{ xdg_config_dir }}/nvim/init.vim',
|
||||||
|
}
|
||||||
|
- {
|
||||||
|
src: '{{ ansible_env.HOME }}/dotfiles/.vimrc',
|
||||||
|
dest: '{{ ansible_env.HOME }}/.vimrc',
|
||||||
|
}
|
||||||
|
- {
|
||||||
|
src: '{{ ansible_env.HOME }}/dotfiles/.bashrc',
|
||||||
|
dest: '{{ ansible_env.HOME }}/.bashrc',
|
||||||
|
}
|
||||||
|
- {
|
||||||
|
src: '{{ ansible_env.HOME }}/dotfiles/.profile',
|
||||||
|
dest: '{{ ansible_env.HOME }}/.profile',
|
||||||
|
}
|
||||||
|
- {
|
||||||
|
src: '{{ ansible_env.HOME }}/dotfiles/nvim/colors',
|
||||||
|
dest: '{{ xdg_data_dir }}/nvim/site/colors',
|
||||||
|
}
|
||||||
|
- {
|
||||||
|
src: '{{ ansible_env.HOME }}/dotfiles/kitty.conf',
|
||||||
|
dest: '{{ xdg_config_dir }}/kitty/kitty.conf',
|
||||||
|
}
|
||||||
|
- {
|
||||||
|
src: '{{ ansible_env.HOME }}/dotfiles/.gitignore',
|
||||||
|
dest: '{{ ansible_env.HOME }}/.gitignore',
|
||||||
|
}
|
||||||
29
tasks/main.yml
Normal file
29
tasks/main.yml
Normal file
|
|
@ -0,0 +1,29 @@
|
||||||
|
- name: add gitlab to known hosts
|
||||||
|
include_role:
|
||||||
|
name: common
|
||||||
|
tasks_from: 'known_hosts.yml'
|
||||||
|
vars:
|
||||||
|
user: '{{ ansible_user_id }}'
|
||||||
|
items:
|
||||||
|
- { domain: '{{ gitlab_domain }}', key: '{{ gitlab_host_key }}' }
|
||||||
|
|
||||||
|
- name: create development dir
|
||||||
|
file:
|
||||||
|
path: '{{ ansible_env.HOME }}/development'
|
||||||
|
state: directory
|
||||||
|
mode: '0755'
|
||||||
|
|
||||||
|
- name: clone git hooks
|
||||||
|
git:
|
||||||
|
repo: '{{ githook_repo }}'
|
||||||
|
dest: '{{ ansible_env.HOME }}/development/git-hooks'
|
||||||
|
update: true
|
||||||
|
version: master
|
||||||
|
|
||||||
|
- name: clone neovim packages
|
||||||
|
git:
|
||||||
|
repo: '{{ item.url }}'
|
||||||
|
dest: '{{ xdg_data_dir }}/nvim/site/pack/default/start/{{ item.name }}'
|
||||||
|
version: master
|
||||||
|
update: true
|
||||||
|
loop: '{{ vim_plugins }}'
|
||||||
|
|
@ -7,5 +7,5 @@ packages:
|
||||||
- npm
|
- npm
|
||||||
- ctags
|
- ctags
|
||||||
- kitty
|
- kitty
|
||||||
- docker # TODO add tasks
|
- docker
|
||||||
- docker-compose
|
- docker-compose
|
||||||
22
vars/main.yml
Normal file
22
vars/main.yml
Normal file
|
|
@ -0,0 +1,22 @@
|
||||||
|
packages: []
|
||||||
|
|
||||||
|
xdg_config_dir: '{{ ansible_env.HOME }}/.config'
|
||||||
|
xdg_data_dir: '{{ ansible_env.HOME }}/.local/share'
|
||||||
|
|
||||||
|
dotfiles_repo: 'git@git.fudiggity.nl:sonny/dotfiles.git'
|
||||||
|
githook_repo: 'git@git.fudiggity.nl:sonny/git-hooks.git'
|
||||||
|
|
||||||
|
vim_plugins:
|
||||||
|
- { url: 'https://github.com/preservim/nerdtree', name: 'nerdtree' }
|
||||||
|
- { url: 'https://github.com/neoclide/coc.nvim', name: 'coc.nvim' }
|
||||||
|
- { url: 'https://github.com/sheerun/vim-polyglot', name: 'vim-polygot' }
|
||||||
|
|
||||||
|
poetry_packages:
|
||||||
|
- black
|
||||||
|
- pylint
|
||||||
|
- autoflake
|
||||||
|
|
||||||
|
gitlab_domain: 'git.fudiggity.nl'
|
||||||
|
gitlab_host_key: 'git.fudiggity.nl ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICNmvcxza79T7JZMkifmquwXH/kMUqDnKs9Oob+JrRvn'
|
||||||
|
|
||||||
|
skip_common_setup: true
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
dotfiles_repo: "https://git.fudiggity.nl/sonny/dotfiles.git"
|
dotfiles_repo: 'https://git.fudiggity.nl/sonny/dotfiles.git'
|
||||||
githook_repo: "https://git.fudiggity.nl/sonny/git-hooks.git"
|
githook_repo: 'https://git.fudiggity.nl/sonny/git-hooks.git'
|
||||||
|
|
||||||
packages:
|
packages:
|
||||||
- git
|
- git
|
||||||
Loading…
Add table
Add a link
Reference in a new issue