Jannik Beyerstedt
a8285962a9
Having the when condition of a task at the top instead of bottom is easiert to read. Also some spaces were another whitespace character on accident.
114 lines
4.2 KiB
Markdown
114 lines
4.2 KiB
Markdown
Common
|
|
=========
|
|
|
|
Common user settings and tools used by Jannik Beyerstedt.
|
|
This role is compatible with Debian based systems, macOS, CentOS (no development toolchains) and ArchLinux (no updates).
|
|
|
|
|
|
Requirements
|
|
------------
|
|
|
|
Have a user set up on the machine, to which you can connecto via a ssh key.
|
|
This user must also have sudo right without asking for a password!
|
|
(e.g. using `%sudo ALL=(ALL) NOPASSWD:ALL` when editing the sudoers file with `sudo visudo`)
|
|
|
|
|
|
Role Variables
|
|
--------------
|
|
|
|
This role uses the apt package manager on Debian based hosts.
|
|
But for some operating systems the `ansible_os_family` variable is not set to "Debian" by the fact gathering even if it is Debian based (like Mendel GNU/Linux on the Google Coral Dev Board).
|
|
- `override_os_family`: Set to "Debian" in the host inventory, if `ansible_os_family` is not set correctly
|
|
|
|
On macOS, it might be needed to specify the full path to the pip3 executable:
|
|
- `override_pip_exe`: Set a custom pip executable (default: n.a.)
|
|
|
|
The User Setup will change the user shell and global gitconfig. This can be disabled:
|
|
- `usersetup_chsh`: Boolean to enable changing the user shell to zsh (default: true)
|
|
- `usersetup_gitconfig`: Boolean to disable overriding the global gitconfig (default: true)
|
|
* `gitconfig_name`: User's name in .gitconfig file (default: n.a.)
|
|
* `gitconfig_email`: User's email in .gitconfig file (default: n.a.)
|
|
- `usersetup_virtualenvwrapper`: Boolean to enable the virtualenvwrapper plugin in oh-my-zsh (default: false)
|
|
|
|
The development environment for different programming languages can be setup automatically.
|
|
To enable, that Visual Studio Code will be installed and configured, set `user_vscode` to true, otherwise only the bare development toolchain will be installed.
|
|
For a GUI/ Desktop machine, you can enable to install and configure VS Code:
|
|
- `user_vscode`: Boolean to install and set the basic configuration of VS Code (default: false)
|
|
- `user_lang_cpp`: Boolean to install C/C++ dev tools and configure VS Code (default: false)
|
|
- `user_lang_python`: Boolean to install Python dev tools and configure VS Code (default: false)
|
|
- `user_lang_golang`: Boolean to install Golang dev tools and configure VS Code (default: false)
|
|
* `user_lang_golang_gopath`: Install path for golang (default: "{{ ansible_user_dir }}/Development/go")
|
|
- `user_lang_latex`: Boolean to install a LaTeX distribution and configure VS Code (default: false)
|
|
|
|
By default, this role will run updates, install some essential tools, set up the user's shell and copy the dotfiles.
|
|
If you just want to have the dotfiles managed by ansible, set `common_settingsonly` to true!
|
|
This can be useful, if you have no sudo rights, because tool installation will need these.
|
|
|
|
|
|
Dependencies
|
|
------------
|
|
|
|
none
|
|
|
|
|
|
Example Playbook
|
|
----------------
|
|
|
|
You can simply run the whole role:
|
|
```yml
|
|
- name: Basic User Shell Setup
|
|
hosts: all
|
|
tasks:
|
|
- ansible.builtin.import_role:
|
|
name: common
|
|
```
|
|
|
|
Or call the different tasks individually:
|
|
```yml
|
|
- name: Basic User Shell Setup
|
|
hosts: all
|
|
tasks:
|
|
- name: Basics - Update first
|
|
when: common_settingsonly | default(false) == false
|
|
ansible.builtin.import_role:
|
|
name: common
|
|
tasks_from: update
|
|
|
|
## Run rasks from the role's main.yml
|
|
- name: Basics - Install essential tools
|
|
when: common_settingsonly | default(false) == false
|
|
ansible.builtin.import_role:
|
|
name: common
|
|
tasks_from: essentials
|
|
- name: Basics - Install basic tools
|
|
when: common_settingsonly | default(false) == false
|
|
ansible.builtin.import_role:
|
|
name: common
|
|
tasks_from: tools
|
|
- name: Basics - Setup user shell
|
|
when: common_settingsonly | default(false) == false
|
|
ansible.builtin.import_role:
|
|
name: common
|
|
tasks_from: usersetup
|
|
- name: Basics - Install dotfiles
|
|
ansible.builtin.import_role:
|
|
name: common
|
|
tasks_from: usersettings
|
|
|
|
## Additionall tasks for a work station machine
|
|
- name: Basics - Install user's working utilities
|
|
ansible.builtin.import_role:
|
|
name: common
|
|
tasks_from: usertools
|
|
- name: Basics - Install and configure development env (and VS Code)
|
|
ansible.builtin.import_role:
|
|
name: common
|
|
tasks_from: devel
|
|
```
|
|
|
|
|
|
License
|
|
-------
|
|
|
|
GPLv3
|