splitting roles
This commit is contained in:
@@ -1,175 +1,91 @@
|
||||
---
|
||||
- name: Create default user
|
||||
user:
|
||||
name: "{{ default_user }}"
|
||||
password: "{{ default_user_password | password_hash('sha512') }}"
|
||||
groups: sudo
|
||||
create_home: yes
|
||||
shell: /bin/zsh
|
||||
generate_ssh_key: yes
|
||||
ssh_key_bits: 2048
|
||||
ssh_key_file: .ssh/id_rsa
|
||||
update_password: always
|
||||
state: present
|
||||
|
||||
- name: Ensure sudo group has passwordless sudo privileges
|
||||
lineinfile:
|
||||
dest: /etc/sudoers
|
||||
state: present
|
||||
regexp: "^%sudo"
|
||||
line: "%sudo ALL=(ALL) NOPASSWD:ALL"
|
||||
validate: "/usr/sbin/visudo -cf %s"
|
||||
|
||||
- name: Upgrade apt packages
|
||||
apt:
|
||||
update_cache: yes
|
||||
upgrade: full
|
||||
|
||||
- name: Install apt packages
|
||||
apt:
|
||||
name: "{{ packages_to_install }}"
|
||||
|
||||
- name: Get default user home
|
||||
getent:
|
||||
database: passwd
|
||||
key: "{{ default_user }}"
|
||||
split: ":"
|
||||
|
||||
- name: Set default user home
|
||||
set_fact:
|
||||
default_user_home: "{{ getent_passwd[default_user][4] }}"
|
||||
|
||||
- name: Install .tmux.conf to default user
|
||||
copy:
|
||||
src: .tmux.conf
|
||||
dest: "{{ default_user_home }}/.tmux.conf"
|
||||
owner: "{{ default_user }}"
|
||||
group: "{{default_user}}"
|
||||
force: yes
|
||||
mode: 0644
|
||||
|
||||
- name: Create temporary install directory
|
||||
tempfile:
|
||||
path: "/home/{{ default_user }}"
|
||||
state: directory
|
||||
suffix: .tmp
|
||||
register: temp_install_dir
|
||||
changed_when: false
|
||||
- name: Configure shell for default user
|
||||
tags: shell
|
||||
become: true
|
||||
become_user: "{{ default_user }}"
|
||||
block:
|
||||
- name: Get default user home
|
||||
getent:
|
||||
database: passwd
|
||||
key: "{{ default_user }}"
|
||||
split: ":"
|
||||
tags: always
|
||||
|
||||
- name: Download oh-my-zsh
|
||||
get_url:
|
||||
url: https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh
|
||||
dest: "{{ temp_install_dir.path }}"
|
||||
mode: 0777
|
||||
become: true
|
||||
become_user: "{{ default_user }}"
|
||||
- name: Set default user home
|
||||
set_fact:
|
||||
default_user_home: "{{ getent_passwd[default_user][4] }}"
|
||||
tags: always
|
||||
|
||||
- name: Install oh-my-zsh
|
||||
shell: "sh {{ temp_install_dir.path }}/install.sh --unattended"
|
||||
args:
|
||||
creates: "{{ default_user_home }}/.oh-my-zsh"
|
||||
become: true
|
||||
become_user: "{{ default_user }}"
|
||||
- name: Install and configure default user environment
|
||||
become: true
|
||||
become_user: "{{ default_user }}"
|
||||
block:
|
||||
- name: Install .tmux.conf to default user
|
||||
copy:
|
||||
src: .tmux.conf
|
||||
dest: "{{ default_user_home }}/.tmux.conf"
|
||||
owner: "{{ default_user }}"
|
||||
group: "{{default_user}}"
|
||||
force: yes
|
||||
mode: 0644
|
||||
|
||||
- name: Install powerlevel10k theme
|
||||
git:
|
||||
repo: "https://gitee.com/romkatv/powerlevel10k.git"
|
||||
version: master
|
||||
dest: "{{ default_user_home }}/.oh-my-zsh/custom/themes/powerlevel10k"
|
||||
depth: 1
|
||||
- name: Create temporary install directory
|
||||
tempfile:
|
||||
path: "/home/{{ default_user }}"
|
||||
state: directory
|
||||
suffix: .tmp
|
||||
register: temp_install_dir
|
||||
changed_when: false
|
||||
tags: always
|
||||
|
||||
- name: Install zsh-syntax-highlighting
|
||||
git:
|
||||
repo: "https://github.com/zsh-users/zsh-syntax-highlighting.git"
|
||||
version: master
|
||||
dest: "{{ default_user_home }}/.zsh/zsh-syntax-highlighting"
|
||||
clone: yes
|
||||
update: yes
|
||||
- name: Download oh-my-zsh
|
||||
get_url:
|
||||
url: https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh
|
||||
dest: "{{ temp_install_dir.path }}"
|
||||
mode: 0777
|
||||
|
||||
- name: Install zsh-autosuggestions
|
||||
git:
|
||||
repo: https://github.com/zsh-users/zsh-autosuggestions
|
||||
version: master
|
||||
dest: "{{ default_user_home }}/.zsh/zsh-autosuggestions"
|
||||
clone: yes
|
||||
update: yes
|
||||
- name: Install oh-my-zsh
|
||||
shell: "sh {{ temp_install_dir.path }}/install.sh --unattended"
|
||||
args:
|
||||
creates: "{{ default_user_home }}/.oh-my-zsh"
|
||||
|
||||
- name: Install .zshrc to default user
|
||||
template:
|
||||
src: .zshrc.j2
|
||||
dest: "{{ default_user_home }}/.zshrc"
|
||||
owner: "{{ default_user }}"
|
||||
group: "{{ default_user }}"
|
||||
force: yes
|
||||
mode: 0644
|
||||
- name: Install powerlevel10k theme
|
||||
git:
|
||||
repo: "https://gitee.com/romkatv/powerlevel10k.git"
|
||||
version: master
|
||||
dest: "{{ default_user_home }}/.oh-my-zsh/custom/themes/powerlevel10k"
|
||||
depth: 1
|
||||
|
||||
- name: Install .p10k.zsh to default user
|
||||
copy:
|
||||
src: .p10k.zsh
|
||||
dest: "{{ default_user_home }}/.p10k.zsh"
|
||||
owner: "{{ default_user }}"
|
||||
group: "{{default_user}}"
|
||||
force: yes
|
||||
mode: 0644
|
||||
- name: Install zsh-syntax-highlighting
|
||||
git:
|
||||
repo: "https://github.com/zsh-users/zsh-syntax-highlighting.git"
|
||||
version: master
|
||||
dest: "{{ default_user_home }}/.zsh/zsh-syntax-highlighting"
|
||||
clone: yes
|
||||
update: yes
|
||||
|
||||
- name: Install Rustup
|
||||
shell: curl https://sh.rustup.rs -sSf | sh -s -- -y
|
||||
args:
|
||||
creates: "{{ default_user_home }}/.cargo/bin/rustup"
|
||||
environment:
|
||||
RUSTUP_HOME: "{{ default_user_home }}/.rustup"
|
||||
CARGO_HOME: "{{ default_user_home }}/.cargo"
|
||||
become: true
|
||||
become_user: "{{ default_user }}"
|
||||
- name: Install zsh-autosuggestions
|
||||
git:
|
||||
repo: https://github.com/zsh-users/zsh-autosuggestions
|
||||
version: master
|
||||
dest: "{{ default_user_home }}/.zsh/zsh-autosuggestions"
|
||||
clone: yes
|
||||
update: yes
|
||||
|
||||
- name: Install pyenv
|
||||
shell: curl https://pyenv.run | zsh
|
||||
args:
|
||||
creates: "{{ default_user_home }}/.pyenv/bin/pyenv"
|
||||
environment:
|
||||
PYENV_ROOT: "{{ default_user_home }}/.pyenv"
|
||||
become: true
|
||||
become_user: "{{ default_user }}"
|
||||
- name: Install .zshrc to default user
|
||||
template:
|
||||
src: .zshrc.j2
|
||||
dest: "{{ default_user_home }}/.zshrc"
|
||||
owner: "{{ default_user }}"
|
||||
group: "{{ default_user }}"
|
||||
force: yes
|
||||
mode: 0644
|
||||
|
||||
- name: Install pyenv version of python
|
||||
shell: "{{ default_user_home }}/.pyenv/bin/pyenv install {{ pyenv_python_version }}"
|
||||
args:
|
||||
creates: "{{ default_user_home }}/.pyenv/versions/{{ pyenv_python_version }}/bin/python"
|
||||
become: true
|
||||
become_user: "{{ default_user }}"
|
||||
|
||||
- name: Install pipx
|
||||
command: python3 -m pip install pipx --user
|
||||
args:
|
||||
creates: "{{ default_user_home }}/.local/bin/pipx"
|
||||
become: true
|
||||
become_user: "{{ default_user }}"
|
||||
|
||||
- name: Install poetry
|
||||
shell: curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python3
|
||||
args:
|
||||
creates: "{{ default_user_home }}/.poetry/bin/poetry"
|
||||
become: true
|
||||
become_user: "{{ default_user }}"
|
||||
|
||||
- name: Install poetry plugin for oh-my-zsh
|
||||
shell: |
|
||||
mkdir {{ default_user_home }}/.oh-my-zsh/custom/plugins/poetry
|
||||
{{ default_user_home }}/.poetry/bin/poetry completions zsh > {{ default_user_home }}/.oh-my-zsh/custom/plugins/poetry/_poetry
|
||||
args:
|
||||
creates: "{{ default_user_home }}/.oh-my-zsh/custom/plugins/poetry"
|
||||
become: true
|
||||
become_user: "{{ default_user }}"
|
||||
|
||||
- name: Configure poetry
|
||||
command: "{{ default_user_home }}/.poetry/bin/poetry config virtualenvs.in-project true"
|
||||
become: true
|
||||
become_user: "{{ default_user }}"
|
||||
|
||||
- name: Install base rust programs
|
||||
shell: "{{ default_user_home }}/.cargo/bin/cargo install {{ item }}"
|
||||
loop: "{{ cargo_packages }}"
|
||||
become: true
|
||||
become_user: "{{ default_user }}"
|
||||
- name: Install .p10k.zsh to default user
|
||||
copy:
|
||||
src: .p10k.zsh
|
||||
dest: "{{ default_user_home }}/.p10k.zsh"
|
||||
owner: "{{ default_user }}"
|
||||
group: "{{default_user}}"
|
||||
force: yes
|
||||
mode: 0644
|
||||
|
||||
Reference in New Issue
Block a user