feat: added new roles to match daily driver desktop; full idempotency; several fixes and tweaks; re-added hosts in inventory
This commit is contained in:
parent
555fde4351
commit
726b7668f9
65 changed files with 10012 additions and 377 deletions
BIN
collections/ansible_collections/nullified/infrastructure/roles/common/assets/fonts/JetBrainsMonoNerdFontMono-Bold.ttf
(Stored with Git LFS)
Normal file
BIN
collections/ansible_collections/nullified/infrastructure/roles/common/assets/fonts/JetBrainsMonoNerdFontMono-Bold.ttf
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
collections/ansible_collections/nullified/infrastructure/roles/common/assets/fonts/JetBrainsMonoNerdFontMono-BoldItalic.ttf
(Stored with Git LFS)
Normal file
BIN
collections/ansible_collections/nullified/infrastructure/roles/common/assets/fonts/JetBrainsMonoNerdFontMono-BoldItalic.ttf
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
collections/ansible_collections/nullified/infrastructure/roles/common/assets/fonts/JetBrainsMonoNerdFontMono-Italic.ttf
(Stored with Git LFS)
Normal file
BIN
collections/ansible_collections/nullified/infrastructure/roles/common/assets/fonts/JetBrainsMonoNerdFontMono-Italic.ttf
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
collections/ansible_collections/nullified/infrastructure/roles/common/assets/fonts/JetBrainsMonoNerdFontMono-Regular.ttf
(Stored with Git LFS)
Normal file
BIN
collections/ansible_collections/nullified/infrastructure/roles/common/assets/fonts/JetBrainsMonoNerdFontMono-Regular.ttf
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
collections/ansible_collections/nullified/infrastructure/roles/common/assets/fonts/Meslo LG S NF Mono Bold Italic.ttf
(Stored with Git LFS)
Normal file
BIN
collections/ansible_collections/nullified/infrastructure/roles/common/assets/fonts/Meslo LG S NF Mono Bold Italic.ttf
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
collections/ansible_collections/nullified/infrastructure/roles/common/assets/fonts/Meslo LG S NF Mono Bold.ttf
(Stored with Git LFS)
Normal file
BIN
collections/ansible_collections/nullified/infrastructure/roles/common/assets/fonts/Meslo LG S NF Mono Bold.ttf
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
collections/ansible_collections/nullified/infrastructure/roles/common/assets/fonts/Meslo LG S NF Mono Italic.ttf
(Stored with Git LFS)
Normal file
BIN
collections/ansible_collections/nullified/infrastructure/roles/common/assets/fonts/Meslo LG S NF Mono Italic.ttf
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
collections/ansible_collections/nullified/infrastructure/roles/common/assets/fonts/Meslo LG S NF Mono Regular.ttf
(Stored with Git LFS)
Normal file
BIN
collections/ansible_collections/nullified/infrastructure/roles/common/assets/fonts/Meslo LG S NF Mono Regular.ttf
(Stored with Git LFS)
Normal file
Binary file not shown.
|
@ -1,2 +1,10 @@
|
|||
---
|
||||
custom_github_token: ""
|
||||
common_user_account: "{{ custom_base_user_account | lower }}"
|
||||
common_gitconfig_enable: false
|
||||
common_gitconfig_username: ""
|
||||
common_gitconfig_email: ""
|
||||
common_gitconfig_force_sign: false
|
||||
common_gitconfig_signingkey: ""
|
||||
common_apt_packages: []
|
||||
common_install_fonts: false
|
||||
|
|
|
@ -1 +1,5 @@
|
|||
---
|
||||
- name: '[system] reload sysctl configuration'
|
||||
become: true
|
||||
ansible.builtin.command:
|
||||
cmd: sysctl --system
|
||||
|
|
|
@ -0,0 +1,41 @@
|
|||
---
|
||||
- name: '[home] get user account information'
|
||||
ansible.builtin.getent:
|
||||
database: passwd
|
||||
key: "{{ common_user_account }}"
|
||||
split: ":"
|
||||
changed_when: false
|
||||
when: getent_passwd is undefined or common_user_account not in getent_passwd
|
||||
|
||||
- name: '[home] create common directories'
|
||||
become: true
|
||||
become_user: "{{ common_user_account }}"
|
||||
ansible.builtin.file:
|
||||
path: "{{ getent_passwd[common_user_account][4] }}/{{ item }}"
|
||||
state: directory
|
||||
mode: '0750'
|
||||
loop:
|
||||
- .local/bin
|
||||
- .local/share/fonts
|
||||
- .config
|
||||
- .ssh
|
||||
|
||||
- name: '[home] setup home files'
|
||||
become: true
|
||||
become_user: "{{ common_user_account }}"
|
||||
block:
|
||||
- name: '[home] git configuration'
|
||||
ansible.builtin.template:
|
||||
src: ../templates/home/.gitconfig.j2
|
||||
dest: "{{ getent_passwd[common_user_account][4] }}/.gitconfig"
|
||||
mode: '0640'
|
||||
when: common_gitconfig_enable | bool
|
||||
|
||||
- name: '[home] basic files'
|
||||
ansible.builtin.copy:
|
||||
src: "../templates/home/{{ item.name }}"
|
||||
dest: "{{ getent_passwd[common_user_account][4] }}/{{ item.name }}"
|
||||
mode: "{{ item.mode | default('0640') }}"
|
||||
loop:
|
||||
- { name: ".lessfilter", mode: '0750' }
|
||||
- { name: ".pythonrc" }
|
|
@ -1,47 +1,68 @@
|
|||
---
|
||||
- name: '[APT] install dependencies and tools'
|
||||
become: yes
|
||||
- name: '[apt] install dependencies and tools'
|
||||
become: true
|
||||
ansible.builtin.apt:
|
||||
update_cache: yes
|
||||
update_cache: true
|
||||
force_apt_get: true
|
||||
cache_valid_time: 3600
|
||||
pkg:
|
||||
- apt-transport-https
|
||||
- bzip2
|
||||
- catimg
|
||||
- cron
|
||||
- dateutils
|
||||
- emacs-nox
|
||||
- firmware-misc-nonfree
|
||||
- firmware-linux-nonfree
|
||||
- fwupd
|
||||
- gir1.2-fwupd-2.0 # fwupd
|
||||
- git
|
||||
- iotop
|
||||
- ioping
|
||||
- jq
|
||||
- less
|
||||
- libdata-dump-perl # inxi
|
||||
- libxml-dumper-perl # inxi
|
||||
- lm-sensors
|
||||
- ncdu
|
||||
- openssh-server
|
||||
- nvme-cli
|
||||
- procps
|
||||
- python3-pygments
|
||||
- rsync
|
||||
- zsh
|
||||
- smartmontools
|
||||
- tree
|
||||
- xz-utils
|
||||
- yq
|
||||
state: present
|
||||
|
||||
- name: '[GitHub] install tools'
|
||||
become: yes
|
||||
tags:
|
||||
- molecule-idempotence-notest
|
||||
become: true
|
||||
nullified.infrastructure.github_artifact:
|
||||
github_token: '{{ custom_github_token }}'
|
||||
artifacts:
|
||||
asset_name: "{{ item.asset_name | default('') }}"
|
||||
asset_type: "{{ item.asset_type }}"
|
||||
cmds: "{{ item.cmds | default([]) }}"
|
||||
creates: "{{ item.creates | default('') }}"
|
||||
github_token: "{{ custom_github_token }}"
|
||||
repository: "{{ item.repository }}"
|
||||
version: "{{ item.version | default('') }}"
|
||||
loop:
|
||||
- repository: smxi/inxi
|
||||
asset_type: tag
|
||||
cmds:
|
||||
- tar -zxf {asset_dirname}/{asset_filename}
|
||||
- install --group=root --mode=755 --owner=root smxi-inxi-*/inxi /usr/local/bin
|
||||
- install --group=root --mode=644 --owner=root smxi-inxi-*/inxi.1 /usr/share/man/man1
|
||||
creates: /usr/local/bin
|
||||
- repository: sharkdp/bat
|
||||
asset_name: bat_{version}_amd64.deb
|
||||
asset_type: release
|
||||
creates: /usr/bin/bat
|
||||
cmds:
|
||||
- dpkg -i {asset_dirname}/{asset_filename}
|
||||
- repository: aristocratos/btop
|
||||
asset_name: btop-x86_64-linux-musl.tbz
|
||||
asset_type: release
|
||||
creates: /usr/bin/btop
|
||||
cmds:
|
||||
- tar -xjf {asset_dirname}/{asset_filename}
|
||||
- install --group=root --mode=755 --owner=root btop/bin/btop /usr/bin
|
||||
|
@ -50,11 +71,36 @@
|
|||
- repository: eza-community/eza
|
||||
asset_name: eza_x86_64-unknown-linux-gnu.tar.gz
|
||||
asset_type: release
|
||||
creates: /usr/bin/eza
|
||||
cmds:
|
||||
- tar -zxf {asset_dirname}/{asset_filename}
|
||||
- install --group=root --mode=755 --owner=root eza /usr/bin
|
||||
- repository: muesli/duf
|
||||
asset_name: duf_{version}_linux_amd64.deb
|
||||
asset_type: release
|
||||
creates: /usr/bin/duf
|
||||
cmds:
|
||||
- dpkg -i {asset_dirname}/{asset_filename}
|
||||
|
||||
- name: '[system] add sysctl tweaks'
|
||||
become: true
|
||||
ansible.builtin.template:
|
||||
src: ../templates/system/sysctld.local.conf.j2
|
||||
dest: /etc/sysctl.d/local.conf
|
||||
mode: '0644'
|
||||
when: custom_sysctl is defined
|
||||
notify:
|
||||
- 'common : [system] reload sysctl configuration'
|
||||
|
||||
- name: '[apt] install custom packages'
|
||||
become: true
|
||||
ansible.builtin.apt:
|
||||
update_cache: true
|
||||
force_apt_get: true
|
||||
cache_valid_time: 3600
|
||||
pkg:
|
||||
"{{ common_apt_packages }}"
|
||||
|
||||
- include_tasks: home_setup.yml
|
||||
|
||||
- include_tasks: shell_customization.yml
|
||||
|
|
|
@ -0,0 +1,89 @@
|
|||
---
|
||||
- name: '[home] get user account information'
|
||||
ansible.builtin.getent:
|
||||
database: passwd
|
||||
key: "{{ common_user_account }}"
|
||||
split: ":"
|
||||
changed_when: false
|
||||
when: getent_passwd is undefined or common_user_account not in getent_passwd
|
||||
|
||||
- name: '[shell] install ZSH and dependencies'
|
||||
become: true
|
||||
ansible.builtin.apt:
|
||||
update_cache: true
|
||||
force_apt_get: true
|
||||
cache_valid_time: 3600
|
||||
pkg:
|
||||
- git
|
||||
- zsh
|
||||
state: present
|
||||
|
||||
- name: '[shell] install custom fonts'
|
||||
become: true
|
||||
become_user: "{{ common_user_account }}"
|
||||
block:
|
||||
- name: '[fonts] add fonts tooling'
|
||||
become_user: root
|
||||
ansible.builtin.apt:
|
||||
update_cache: true
|
||||
force_apt_get: true
|
||||
cache_valid_time: 3600
|
||||
pkg:
|
||||
- fontconfig
|
||||
|
||||
- name: '[fonts] adding fonts'
|
||||
ansible.builtin.copy:
|
||||
src: ../assets/fonts/
|
||||
dest: "{{ getent_passwd[common_user_account][4] }}/.local/share/fonts"
|
||||
mode: '0640'
|
||||
|
||||
- name: '[fonts] refresh fonts cache'
|
||||
ansible.builtin.command:
|
||||
cmd: fc-cache
|
||||
changed_when: false
|
||||
when: common_install_fonts | bool
|
||||
|
||||
- name: '[shell] install Oh-My-ZSH'
|
||||
become: true
|
||||
become_user: "{{ common_user_account }}"
|
||||
block:
|
||||
- name: '[omz] get install script'
|
||||
ansible.builtin.get_url:
|
||||
url: https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh
|
||||
dest: /tmp/zsh-install.sh
|
||||
mode: '0750'
|
||||
|
||||
- name: '[omz] install OMZ'
|
||||
ansible.builtin.command:
|
||||
cmd: sh /tmp/zsh-install.sh --unattended
|
||||
creates: "{{ getent_passwd[common_user_account][4] }}/.oh-my-zsh"
|
||||
|
||||
- name: '[shell] install powerlevel10k customization for OMZ'
|
||||
become: true
|
||||
become_user: "{{ common_user_account }}"
|
||||
ansible.builtin.git:
|
||||
repo: https://github.com/romkatv/powerlevel10k.git
|
||||
dest: "{{ getent_passwd[common_user_account][4] }}/.oh-my-zsh/custom/themes/powerlevel10k"
|
||||
depth: 1
|
||||
|
||||
- name: '[home] copy zsh files'
|
||||
become: true
|
||||
become_user: "{{ common_user_account }}"
|
||||
ansible.builtin.copy:
|
||||
src: "../templates/home/{{ item }}"
|
||||
dest: "{{ getent_passwd[common_user_account][4] }}/{{ item }}"
|
||||
mode: '0640'
|
||||
loop:
|
||||
- .p10k.zsh
|
||||
- .zsh_aliases
|
||||
- .zsh_completions
|
||||
- .zsh_exports
|
||||
- .zsh_functions
|
||||
- .zshrc
|
||||
|
||||
- name: '[shell] update user shell to ZSH'
|
||||
become: true
|
||||
ansible.builtin.user:
|
||||
name: "{{ common_user_account }}"
|
||||
shell: "/usr/bin/zsh"
|
||||
state: present
|
|
@ -0,0 +1,107 @@
|
|||
[user]
|
||||
name = {{ common_gitconfig_username }}
|
||||
email = {{ common_gitconfig_email }}
|
||||
{% if common_gitconfig_force_sign and common_gitconfig_signingkey %}
|
||||
signingkey = {{ common_gitconfig_signingkey }}
|
||||
{% endif %}
|
||||
[commit]
|
||||
{% if common_gitconfig_force_sign %}
|
||||
gpgsign = true
|
||||
{% else %}
|
||||
gpgsign = false
|
||||
{% endif %}
|
||||
[tag]
|
||||
{% if common_gitconfig_force_sign %}
|
||||
gpgsign = true
|
||||
{% else %}
|
||||
gpgsign = false
|
||||
{% endif -%}
|
||||
{% raw %}
|
||||
[alias]
|
||||
br = "branch"
|
||||
ci = "commit"
|
||||
cmp = "!f() { git log --graph --color --boundary --oneline HEAD...origin/$1; }; f"
|
||||
co = "checkout"
|
||||
cp = "cherry-pick"
|
||||
cpo = "cherry-pick --strategy=recursive -Xours --allow-empty"
|
||||
cpt = "cherry-pick --strategy=recursive -Xtheirs --allow-empty"
|
||||
dm = "log --graph --color --boundary --oneline HEAD...origin/master"
|
||||
dup = "!git log --graph --color --boundary --oneline HEAD...origin/$(git rev-parse --abbrev-ref HEAD)"
|
||||
psuo = "!git push --set-upstream origin $(git rev-parse --abbrev-ref HEAD)"
|
||||
rf = "!git reflog --date=iso"
|
||||
ru = "remote update"
|
||||
rup = "!f() { git remote update && git pull --rebase; }; f"
|
||||
pr = "pull --rebase"
|
||||
st = "status"
|
||||
subup = "!git submodule foreach git remote update"
|
||||
undo = "!f() { git reset --soft HEAD~${1:-1}; }; f"
|
||||
|
||||
lg = lg1
|
||||
lg1 = lg1-specific --all
|
||||
lg2 = lg2-specific --all
|
||||
lg3 = lg3-specific --all
|
||||
lg1-specific = log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(dim white)- %an%C(reset)%C(auto)%d%C(reset)'
|
||||
lg2-specific = log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold cyan)%aD%C(reset) %C(bold green)(%ar)%C(reset)%C(auto)%d%C(reset)%n'' %C(white)%s%C(reset) %C(dim white)- %an%C(reset)'
|
||||
lg3-specific = log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold cyan)%aD%C(reset) %C(bold green)(%ar)%C(reset) %C(bold cyan)(committed: %cD)%C(reset) %C(auto)%d%C(reset)%n'' %C(white)%s%C(reset)%n'' %C(dim white)- %an <%ae> %C(reset) %C(dim white)(committer: %cn <%ce>)%C(reset)'
|
||||
[core]
|
||||
editor = emacs
|
||||
autocrlf = input
|
||||
pager = delta
|
||||
[color]
|
||||
status = auto
|
||||
branch = auto
|
||||
interactive = auto
|
||||
diff = auto
|
||||
ui = true
|
||||
pager = true
|
||||
[delta]
|
||||
navigate = true
|
||||
line-numbers = true
|
||||
[push]
|
||||
default = simple
|
||||
[merge]
|
||||
conflictstyle = diff3
|
||||
[pull]
|
||||
rebase = true
|
||||
[diff]
|
||||
colorMoved = default
|
||||
[diff "pdf"]
|
||||
textconv = pdfinfo
|
||||
[diff "pdfdiff"]
|
||||
command = diffpdf
|
||||
[init]
|
||||
defaultBranch = main
|
||||
[interactive]
|
||||
diffFilter = delta --color-only
|
||||
[submodule]
|
||||
recurse = true
|
||||
[advice]
|
||||
addEmbeddedRepo = false
|
||||
addEmptyPathspec = false
|
||||
addIgnoredFile = false
|
||||
amWorkDir = false
|
||||
checkoutAmbiguousRemoteBranchName = false
|
||||
commitBeforeMerge = false
|
||||
detachedHead = false
|
||||
fetchShowForcedUpdates = false
|
||||
ignoredHook = false
|
||||
implicitIdentity = false
|
||||
nestedTag = false
|
||||
pushAlreadyExists = true
|
||||
pushFetchFirst = true
|
||||
pushNeedsForce = true
|
||||
pushNonFFCurrent = true
|
||||
pushNonFFMatching = true
|
||||
pushRefNeedsUpdate = true
|
||||
pushUnqualifiedRefname = true
|
||||
pushUpdateRejected = true
|
||||
resetQuiet = false
|
||||
resolveConflict = true
|
||||
rmHints = false
|
||||
sequencerInUse = false
|
||||
statusAheadBehind = false
|
||||
statusHints = false
|
||||
statusUoption = false
|
||||
submoduleAlternateErrorStrategyDie = false
|
||||
waitingForEditor = false
|
||||
{% endraw %}
|
|
@ -0,0 +1,68 @@
|
|||
#!/bin/sh
|
||||
# Best effort auto-pygmentization with transparent decompression
|
||||
# (c) Reuben Thomas 2012
|
||||
# This program is in the public domain.
|
||||
|
||||
# Strategy: first see if pygmentize can find a lexer; if not, ask file; if that finds nothing, fail
|
||||
# Set the environment variable PYGMENTIZE_OPTS to configure pygments.
|
||||
|
||||
# This program can be used as a .lessfilter for the less pager to auto-color less's output
|
||||
|
||||
if [ `pygmentize -N $1` != "text" ]; then
|
||||
pygmentize $PYGMENTIZE_OPTS "$1"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
file_common_opts="--brief --dereference --uncompress"
|
||||
|
||||
unset lexer
|
||||
case `file --mime-type $file_common_opts "$1"` in
|
||||
application/xml|image/svg+xml) lexer=xml;;
|
||||
text/html) lexer=html;;
|
||||
text/troff) lexer=nroff;;
|
||||
text/x-asm) lexer=nasm;;
|
||||
text/x-awk) lexer=awk;;
|
||||
text/x-c) lexer=c;;
|
||||
text/x-c++) lexer=cpp;;
|
||||
text/x-diff) lexer=diff;;
|
||||
text/x-fortran) lexer=fortran;;
|
||||
text/x-gawk) lexer=gawk;;
|
||||
text/x-java) lexer=java;;
|
||||
text/x-lisp) lexer=common-lisp;;
|
||||
text/x-lua) lexer=lua;;
|
||||
text/x-makefile) lexer=make;;
|
||||
text/x-msdos-batch) lexer=bat;;
|
||||
text/x-nawk) lexer=nawk;;
|
||||
text/x-pascal) lexer=pascal;;
|
||||
text/x-perl) lexer=perl;;
|
||||
text/x-php) lexer=php;;
|
||||
text/x-po) lexer=po;;
|
||||
text/x-python) lexer=python;;
|
||||
text/x-ruby) lexer=ruby;;
|
||||
text/x-shellscript) lexer=sh;;
|
||||
text/x-tcl) lexer=tcl;;
|
||||
text/x-tex|text/x-texinfo) lexer=latex;; # FIXME: texinfo really needs its own lexer
|
||||
|
||||
# Types that file outputs which pygmentize didn't support as of file 5.11, pygments 1.5
|
||||
# text/calendar
|
||||
# text/PGP
|
||||
# text/rtf
|
||||
# text/texmacs
|
||||
# text/x-bcpl
|
||||
# text/x-info
|
||||
# text/x-m4
|
||||
# text/x-vcard
|
||||
# text/x-xmcd
|
||||
esac
|
||||
|
||||
encoding=`file --mime-encoding $file_common_opts "$1"`
|
||||
|
||||
if [ -n "$lexer" ]; then
|
||||
# FIXME: Specify input encoding rather than output encoding https://bitbucket.org/birkenfeld/pygments-main/issue/800
|
||||
# FIXME: Encoding argument ignored on stdin https://bitbucket.org/birkenfeld/pygments-main/issue/799
|
||||
#zcat "$1" | pygmentize -O encoding=$encoding,outencoding=UTF-8 $PYGMENTIZE_OPTS -l $lexer
|
||||
pygmentize -O encoding=$encoding,outencoding=UTF-8 $PYGMENTIZE_OPTS -l $lexer $1
|
||||
exit 0
|
||||
fi
|
||||
|
||||
exit 1
|
File diff suppressed because it is too large
Load diff
|
@ -0,0 +1,7 @@
|
|||
try:
|
||||
import readline
|
||||
except ImportError:
|
||||
print("Module readline not available.")
|
||||
else:
|
||||
import rlcompleter
|
||||
readline.parse_and_bind("tab: complete")
|
|
@ -0,0 +1,34 @@
|
|||
# Utilities
|
||||
alias dig=ydig
|
||||
alias e="emacs"
|
||||
alias grep="egrep --color"
|
||||
alias cpr="rsync -rlptgoDAXhP --info=all0,progress2"
|
||||
alias rcp="cpr"
|
||||
alias ll="eza -lahv --color"
|
||||
alias l="eza -l -g --icons --all --all"
|
||||
alias ls="eza"
|
||||
alias xclip="xclip -sel clipboard"
|
||||
alias git='GIT_COMMITTER_DATE="$(date +%Y-%m-%d) 00:00:00+0000" GIT_AUTHOR_DATE="$(date +%Y-%m-%d) 00:00:00+0000" git'
|
||||
alias cat=bat
|
||||
alias less=bat
|
||||
|
||||
# Dev
|
||||
alias dcl="docker container ls -a --format='{{ .ID }}\t{{ .Names }}\t{{ index (split .Status \" \") 0 }}' | sort -k3r -k2 | column -t -N ID,Name,State"
|
||||
alias composer80="composerX 8.0"
|
||||
alias composer81="composerX 8.1"
|
||||
alias composer82="composerX 8.2"
|
||||
alias phpqa="phpqa82"
|
||||
alias phpqa81='docker run --init -it --rm -v "$(pwd):/project" -v "$(pwd)/tmp-phpqa:/tmp" -w /project jakzal/phpqa:php8.1-alpine'
|
||||
alias phpqa82='docker run --init -it --rm -v "$(pwd):/project" -v "$(pwd)/tmp-phpqa:/tmp" -w /project jakzal/phpqa:php8.2-alpine'
|
||||
|
||||
# DevOps / Admin
|
||||
alias ssl_scan="docker run -ti --rm drwetter/testssl.sh"
|
||||
alias tf="tofu"
|
||||
alias terraform="tofu"
|
||||
alias ks="kubeshell"
|
||||
|
||||
# Personal
|
||||
alias awesome_test="Xephyr -screen 1440x1080 :5 & sleep 1 ; DISPLAY=:5 awesome"
|
||||
alias clean_pa='pkill -U ${USER} pulseaudio; systemctl --user stop pulseaudio.socket && systemctl --user start pulseaudio.socket'
|
||||
alias ssh_jump="ssh -qTNn"
|
||||
alias x11_paste='sleep 2; xdotool type "$(xclip -o -selection clipboard)"'
|
|
@ -0,0 +1,21 @@
|
|||
# https://github.com/zsh-users/zsh-completions
|
||||
fpath+=${ZSH_CUSTOM:-${ZSH:-~/.oh-my-zsh}/custom}/plugins/zsh-completions/src
|
||||
|
||||
# shellcheck disable=SC1090
|
||||
if command -v ansible &> /dev/null; then
|
||||
source <(register-python-argcomplete ansible)
|
||||
source <(register-python-argcomplete ansible-config)
|
||||
source <(register-python-argcomplete ansible-console)
|
||||
source <(register-python-argcomplete ansible-doc)
|
||||
source <(register-python-argcomplete ansible-galaxy)
|
||||
source <(register-python-argcomplete ansible-inventory)
|
||||
source <(register-python-argcomplete ansible-playbook)
|
||||
source <(register-python-argcomplete ansible-pull)
|
||||
source <(register-python-argcomplete ansible-vault)
|
||||
fi
|
||||
|
||||
autoload -U compinit && compinit
|
||||
|
||||
command -v boundary &> /dev/null && complete -o nospace -C /usr/bin/boundary boundary || true
|
||||
command -v molecule &> /dev/null && source <(_MOLECULE_COMPLETE=zsh_source molecule) || true
|
||||
command -v helm &> /dev/null && source <(helm completion zsh) || true
|
|
@ -0,0 +1,29 @@
|
|||
# Versions
|
||||
export RUBY_VERSION="3.1"
|
||||
|
||||
# Settings
|
||||
export DEFAULT_USER=$(id -un)
|
||||
export EDITOR=emacs
|
||||
export TERM=xterm-256color
|
||||
export LESS='-R'
|
||||
export LESSOPEN='|~/.lessfilter %s'
|
||||
export DOTNET_CLI_TELEMETRY_OPTOUT=1
|
||||
export SSH_KEY_PATH="${HOME}/.ssh/id_ed25519"
|
||||
export PAGER=less
|
||||
export GPG_TTY="${TTY}"
|
||||
|
||||
# Dev
|
||||
[ -d "$HOME/.nvm" ] && export NVM_DIR="$HOME/.nvm"
|
||||
[ -d "$HOME/.nvm" ] && export NVM_SYMLINK_CURRENT=true
|
||||
# shellcheck disable=SC1090
|
||||
[ -s "$NVM_DIR/nvm.sh" ] && source "$NVM_DIR/nvm.sh" # This loads nvm
|
||||
[ -d "${HOME}/.local/share/gems/ruby/${RUBY_VERSION}" ] && export GEM_DIR="${HOME}/.local/share/gems/ruby/${RUBY_VERSION}"
|
||||
[ -d "${HOME}/.cargo/env" ] && source "${HOME}/.cargo/env"
|
||||
|
||||
# Path
|
||||
export PATH="${PATH}:${HOME}/.local/bin"
|
||||
[ -d "${HOME}/.nvm/current/bin" ] && export PATH="${PATH}:${HOME}/.nvm/current/bin"
|
||||
[ -d "${GEM_DIR}/bin" ] && export PATH="${PATH}:${GEM_DIR}/bin"
|
||||
[ -d "/usr/local/go/bin" ] && export PATH="${PATH}:/usr/local/go/bin"
|
||||
[ -d "$HOME/.cargo/bin" ] && export PATH="${PATH}:$HOME/.cargo/bin"
|
||||
[ -d "$HOME/.local/share/JetBrains/Toolbox/scripts" ] && export PATH="${PATH}:$HOME/.local/share/JetBrains/Toolbox/scripts"
|
|
@ -0,0 +1,21 @@
|
|||
function ydig() {
|
||||
dig +yaml "${@}" | yq '.[].message.response_message_data|{"answer": .ANSWER_SECTION, status}'
|
||||
}
|
||||
|
||||
function kubeshell() {
|
||||
if [ $# -lt 3 ]; then
|
||||
print "Invalid parameters: kubeshell NAMESPACE CONTAINER POD "
|
||||
return 1
|
||||
fi
|
||||
|
||||
local kubeBinary
|
||||
local namespace="${1}"
|
||||
shift
|
||||
local container="${1}"
|
||||
shift
|
||||
local pod="${1}"
|
||||
shift
|
||||
|
||||
kubeBinary=$(command -v kubectl)
|
||||
"${kubeBinary}" exec -i -t -n "${namespace}" "${pod}" -c "${container}" "${@}" -- sh -c "clear; (zsh || bash || ash || sh)"
|
||||
}
|
|
@ -0,0 +1,54 @@
|
|||
# Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.zshrc.
|
||||
# Initialization code that may require console input (password prompts, [y/n]
|
||||
# confirmations, etc.) must go above this block; everything else may go below.
|
||||
if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then
|
||||
source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
|
||||
fi
|
||||
|
||||
# Path to your oh-my-zsh installation.
|
||||
export ZSH="${HOME}/.oh-my-zsh"
|
||||
export TERM="xterm-256color"
|
||||
|
||||
ZSH_THEME="powerlevel10k/powerlevel10k"
|
||||
CASE_SENSITIVE="true"
|
||||
|
||||
# Uncomment the following line to use hyphen-insensitive completion.
|
||||
# Case-sensitive completion must be off. _ and - will be interchangeable.
|
||||
# HYPHEN_INSENSITIVE="true"
|
||||
|
||||
# Uncomment the following line to disable bi-weekly auto-update checks.
|
||||
# DISABLE_AUTO_UPDATE="true"
|
||||
|
||||
# Uncomment the following line to automatically update without prompting.
|
||||
# DISABLE_UPDATE_PROMPT="true"
|
||||
|
||||
# Uncomment the following line to change how often to auto-update (in days).
|
||||
# export UPDATE_ZSH_DAYS=13
|
||||
|
||||
# Uncomment the following line if pasting URLs and other text is messed up.
|
||||
# DISABLE_MAGIC_FUNCTIONS=true
|
||||
|
||||
# Uncomment the following line to disable colors in ls.
|
||||
# DISABLE_LS_COLORS="true"
|
||||
|
||||
# Uncomment the following line to disable auto-setting terminal title.
|
||||
# DISABLE_AUTO_TITLE="true"
|
||||
|
||||
# Uncomment the following line to enable command auto-correction.
|
||||
# ENABLE_CORRECTION="true"
|
||||
|
||||
# Uncomment the following line to display red dots whilst waiting for completion.
|
||||
# COMPLETION_WAITING_DOTS="true"
|
||||
|
||||
HIST_STAMPS="yyyy.mm.dd"
|
||||
|
||||
plugins=(autopep8 aws branch colored-man-pages colorize composer docker docker-compose git kubectl kube-ps1 npm nvm pass pep8 pip redis-cli rsync rust terraform)
|
||||
|
||||
source $ZSH/oh-my-zsh.sh
|
||||
|
||||
[ -f ~/.zsh_exports ] && source ~/.zsh_exports
|
||||
[ -f ~/.p10k.zsh ] && source ~/.p10k.zsh
|
||||
[ -f ~/.zsh_functions ] && source ~/.zsh_functions
|
||||
[ -f ~/.zsh_aliases ] && source ~/.zsh_aliases
|
||||
[ -f ~/.env ] && source ~/.env
|
||||
[ -f ~/.zsh_completions ] && source ~/.zsh_completions
|
|
@ -0,0 +1,3 @@
|
|||
{% for item in custom_sysctl.keys() -%}
|
||||
{{ item }} = {{ custom_sysctl[item] }}
|
||||
{% endfor %}
|
Loading…
Add table
Add a link
Reference in a new issue