refactor!: switch hosts variables to a flat layout
This commit is contained in:
parent
f669dea62a
commit
779f2766f2
33 changed files with 270 additions and 322 deletions
|
@ -1,15 +1,9 @@
|
|||
---
|
||||
development:
|
||||
docker:
|
||||
userns: true
|
||||
remap_user: "{{ custom_base_user_account }}"
|
||||
remap_group: "{{ custom_base_user_account }}"
|
||||
systemd_slice: docker.slice
|
||||
github_token: "{{ custom_github_token | default('') }}"
|
||||
rust:
|
||||
enable: true
|
||||
user_account: "{{ custom_base_user_account }}"
|
||||
virtualbox_version: "7.0"
|
||||
|
||||
custom_development: {}
|
||||
recursive_combine: true
|
||||
development_user_account: "{{ custom_base_user_account }}"
|
||||
development_github_token: "{{ custom_github_token | default('') }}"
|
||||
development_virtualbox_version: "7.0"
|
||||
development_docker_userns: true
|
||||
development_rust_enabled: true
|
||||
development_docker_remap_user: "{{ development_user_account }}"
|
||||
development_docker_remap_group: "{{ development_user_account }}"
|
||||
development_docker_systemd_slice: docker.slice
|
||||
|
|
|
@ -7,18 +7,13 @@
|
|||
- kernel
|
||||
- virtualization_type
|
||||
|
||||
- name: '[setup] merge with custom vars'
|
||||
ansible.builtin.set_fact:
|
||||
development: "{{ development | combine(custom_development, recursive=recursive_combine) }}"
|
||||
changed_when: false
|
||||
|
||||
- name: '[home] get user account information'
|
||||
ansible.builtin.getent:
|
||||
database: passwd
|
||||
key: "{{ development.user_account }}"
|
||||
key: "{{ development_user_account }}"
|
||||
split: ":"
|
||||
changed_when: false
|
||||
when: ansible_facts['getent_passwd'] is undefined or development.user_account not in ansible_facts['getent_passwd']
|
||||
when: ansible_facts['getent_passwd'] is undefined or development_user_account not in ansible_facts['getent_passwd']
|
||||
|
||||
- name: '[apt] install dependencies and tools'
|
||||
become: true
|
||||
|
@ -82,7 +77,7 @@
|
|||
- name: '[github] install tools'
|
||||
become: true
|
||||
nullified.infrastructure.github_artifact:
|
||||
github_token: '{{ development.github_token }}'
|
||||
github_token: '{{ development_github_token }}'
|
||||
asset_name: "{{ item.asset_name | default('') }}"
|
||||
asset_type: "{{ item.asset_type }}"
|
||||
cmds: "{{ item.cmds | default([]) }}"
|
||||
|
@ -248,7 +243,7 @@
|
|||
force_apt_get: true
|
||||
cache_valid_time: 3600
|
||||
pkg:
|
||||
- "virtualbox-{{ development.virtualbox_version }}"
|
||||
- "virtualbox-{{ development_virtualbox_version }}"
|
||||
state: present
|
||||
|
||||
- name: '[custom] install Docker CE repository'
|
||||
|
@ -283,7 +278,7 @@
|
|||
src: ../templates/docker-ce/daemon.json.j2
|
||||
dest: /etc/docker/daemon.json
|
||||
mode: '0644'
|
||||
when: development.docker.userns is truthy
|
||||
when: development_docker_userns is truthy
|
||||
notify:
|
||||
- 'development : [docker] restart service'
|
||||
notify:
|
||||
|
@ -291,21 +286,21 @@
|
|||
|
||||
- name: '[python] install tools'
|
||||
become: true
|
||||
become_user: "{{ development.user_account }}"
|
||||
become_user: "{{ development_user_account }}"
|
||||
ansible.builtin.command:
|
||||
cmd: "pipx install {{ item.cmd }}"
|
||||
creates: "{{ ansible_facts['getent_passwd'][development.user_account][4] }}/.local/bin/{{ item.creates }}"
|
||||
creates: "{{ ansible_facts['getent_passwd'][development_user_account][4] }}/.local/bin/{{ item.creates }}"
|
||||
loop:
|
||||
- { "cmd": "black", "creates": "black" }
|
||||
- { "cmd": "flake8", "creates": "flake8" }
|
||||
|
||||
- name: '[python] install pipx packages dependencies'
|
||||
become: true
|
||||
become_user: "{{ development.user_account }}"
|
||||
become_user: "{{ development_user_account }}"
|
||||
ansible.builtin.command:
|
||||
cmd: "pipx inject {{ item.venv }} {{ item.extension }}"
|
||||
creates:
|
||||
"{{ ansible_facts['getent_passwd'][development.user_account][4] }}/.local/pipx/venvs/{{ item.venv }}/lib/python3.11/site-packages/{{ item.creates }}"
|
||||
"{{ ansible_facts['getent_passwd'][development_user_account][4] }}/.local/pipx/venvs/{{ item.venv }}/lib/python3.11/site-packages/{{ item.creates }}"
|
||||
loop:
|
||||
- venv: "flake8"
|
||||
extension: "flake8-annotations-complexity"
|
||||
|
@ -367,33 +362,33 @@
|
|||
|
||||
- name: '[rust] check if rust is already installed'
|
||||
ansible.builtin.file:
|
||||
path: "{{ ansible_facts['getent_passwd'][development.user_account][4] }}/.cargo/bin/rustc"
|
||||
path: "{{ ansible_facts['getent_passwd'][development_user_account][4] }}/.cargo/bin/rustc"
|
||||
register: rustc_stat
|
||||
changed_when: false
|
||||
failed_when: false
|
||||
when: development.rust.enable is truthy
|
||||
when: development_rust_enabled is truthy
|
||||
|
||||
- name: '[rust] rust'
|
||||
become: true
|
||||
when: development.rust.enable is truthy and rustc_stat.state is match("absent")
|
||||
when: development_rust_enabled is truthy and rustc_stat.state is match("absent")
|
||||
block:
|
||||
- name: '[rust] download installer'
|
||||
ansible.builtin.get_url:
|
||||
url: https://sh.rustup.rs
|
||||
dest: /tmp/rustup.sh
|
||||
mode: '0750'
|
||||
owner: "{{ development.user_account }}"
|
||||
group: "{{ development.user_account }}"
|
||||
owner: "{{ development_user_account }}"
|
||||
group: "{{ development_user_account }}"
|
||||
|
||||
- name: '[rust] install rust toolchain'
|
||||
become_user: "{{ development.user_account }}"
|
||||
become_user: "{{ development_user_account }}"
|
||||
ansible.builtin.command:
|
||||
cmd: /tmp/rustup.sh -qy
|
||||
|
||||
- name: '[user] add default user to groups'
|
||||
become: true
|
||||
ansible.builtin.user:
|
||||
name: "{{ development.user_account }}"
|
||||
name: "{{ development_user_account }}"
|
||||
append: true
|
||||
groups:
|
||||
- docker
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
"userns-remap": "{{ development.docker.remap_user }}:{{ development.docker.remap_group }}",
|
||||
"cgroup-parent": "{{ development.docker.systemd_slice }}"
|
||||
"userns-remap": "{{ development_docker_remap_user }}:{{ development_docker_remap_group }}",
|
||||
"cgroup-parent": "{{ development_docker_systemd_slice }}"
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue