first commit

This commit is contained in:
AntonP8O 2024-03-08 08:03:36 +10:00
commit cd077a9bc0
7 changed files with 2197 additions and 0 deletions

0
README.md Normal file
View File

1836
data/.p10k.zsh Normal file

File diff suppressed because it is too large Load Diff

143
data/.zshrc Normal file
View File

@ -0,0 +1,143 @@
# 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
# If you come from bash you might have to change your $PATH.
# export PATH=$HOME/bin:/usr/local/bin:$PATH
# Path to your oh-my-zsh installation.
export ZSH="$HOME/.oh-my-zsh"
# Set name of the theme to load --- if set to "random", it will
# load a random theme each time oh-my-zsh is loaded, in which case,
# to know which specific one was loaded, run: echo $RANDOM_THEME
# See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes
#ZSH_THEME="robbyrussell"
ZSH_THEME="powerlevel10k/powerlevel10k"
# Set list of themes to pick from when loading at random
# Setting this variable when ZSH_THEME=random will cause zsh to load
# a theme from this variable instead of looking in $ZSH/themes/
# If set to an empty array, this variable will have no effect.
# ZSH_THEME_RANDOM_CANDIDATES=( "robbyrussell" "agnoster" )
# Uncomment the following line to use case-sensitive completion.
# 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 one of the following lines to change the auto-update behavior
# zstyle ':omz:update' mode disabled # disable automatic updates
# zstyle ':omz:update' mode auto # update automatically without asking
# zstyle ':omz:update' mode reminder # just remind me to update when it's time
# Uncomment the following line to change how often to auto-update (in days).
# zstyle ':omz:update' frequency 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.
# You can also set it to another string to have that shown instead of the default red dots.
# e.g. COMPLETION_WAITING_DOTS="%F{yellow}waiting...%f"
# Caution: this setting can cause issues with multiline prompts in zsh < 5.7.1 (see #5765)
# COMPLETION_WAITING_DOTS="true"
# Uncomment the following line if you want to disable marking untracked files
# under VCS as dirty. This makes repository status check for large repositories
# much, much faster.
# DISABLE_UNTRACKED_FILES_DIRTY="true"
# Uncomment the following line if you want to change the command execution time
# stamp shown in the history command output.
# You can set one of the optional three formats:
# "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd"
# or set a custom format using the strftime function format specifications,
# see 'man strftime' for details.
# HIST_STAMPS="mm/dd/yyyy"
# Would you like to use another custom folder than $ZSH/custom?
# ZSH_CUSTOM=/path/to/new-custom-folder
# Which plugins would you like to load?
# Standard plugins can be found in $ZSH/plugins/
# Custom plugins may be added to $ZSH_CUSTOM/plugins/
# Example format: plugins=(rails git textmate ruby lighthouse)
# Add wisely, as too many plugins slow down shell startup.
plugins=(git zsh-syntax-highlighting zsh-autosuggestions zsh-history-substring-search)
source $ZSH/oh-my-zsh.sh
# User configuration
# export MANPATH="/usr/local/man:$MANPATH"
# You may need to manually set your language environment
# export LANG=en_US.UTF-8
# Preferred editor for local and remote sessions
# if [[ -n $SSH_CONNECTION ]]; then
# export EDITOR='vim'
# else
# export EDITOR='mvim'
# fi
# Compilation flags
# export ARCHFLAGS="-arch x86_64"
# Set personal aliases, overriding those provided by oh-my-zsh libs,
# plugins, and themes. Aliases can be placed here, though oh-my-zsh
# users are encouraged to define aliases within the ZSH_CUSTOM folder.
# For a full list of active aliases, run `alias`.
#
# Example aliases
# alias zshconfig="mate ~/.zshrc"
# alias ohmyzsh="mate ~/.oh-my-zsh"
# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh.
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh
if [ -x "$(command -v eza)" ]; then
alias ls="eza --long --all --group"
fi
alias cat="bat"
alias df="duf"
alias ..="cd .. && eza --long --all --group"
alias d='sudo -E docker'
alias dc="docker-compose"
alias e="exit"
alias j="sudo journalctl"
alias p1="ping 1.1.1.1"
alias p8="ping 8.8.8.8"
alias please='sudo'
alias reborn="sudo shutdown -r now"
alias s='sudo'
alias sctl="sudo systemctl"
alias svi="sudo vim"
alias svim="sudo vim"
alias t='terraform'
alias k="kubectl"
alias kd="kubectl describe"
alias kg="kubectl get"
alias ky="kubectl get -o yaml"
alias ke='kubectl exec -it'
alias vi="vim"
alias g="git"
alias b="sudo btrfs"
alias c="code ."
alias ansible-time="time ansible-playbook"
alias t1="traceroute 1.1.1.1"
alias dns="dig ya.ru"

54
data/99-mymotd-generator Normal file
View File

@ -0,0 +1,54 @@
#!/bin/zsh
#
# Text Color Variables http://misc.flogisoft.com/bash/tip_colors_and_formatting
tcLtG="\033[00;37m" # LIGHT GRAY
tcDkG="\033[01;30m" # DARK GRAY
tcLtR="\033[01;31m" # LIGHT RED
tcLtGRN="\033[01;32m" # LIGHT GREEN
tcLtBL="\033[01;34m" # LIGHT BLUE
tcLtP="\033[01;35m" # LIGHT PURPLE
tcLtC="\033[01;36m" # LIGHT CYAN
tcW="\033[01;37m" # WHITE
tcRESET="\033[0m"
tcORANGE="\033[38;5;209m"
#
# Time of day
HOUR=$(date +"%H")
if [ $HOUR -lt 12 -a $HOUR -ge 0 ]; then TIME="morning"
elif [ $HOUR -lt 17 -a $HOUR -ge 12 ]; then TIME="afternoon"
else TIME="evening"
fi
#
# System uptime
uptime=`cat /proc/uptime | cut -f1 -d.`
upDays=$((uptime/60/60/24))
upHours=$((uptime/60/60%24))
upMins=$((uptime/60%60))
#
# System + Memory
SYS_LOADS=`cat /proc/loadavg | awk '{print $1}'`
MEMORY_USED=`free -b | grep Mem | awk '{print $3/$2 * 100.0}'`
SWAP_USED=`free -b | grep Swap | awk '{print $3/$2 * 100.0}'`
NUM_PROCS=`ps aux | wc -l`
IPADDRESS=`hostname --all-ip-addresses`
#
# AstraInfra
BREST_BUILD='cat /etc/brest/build_version'
echo $tcDkG "================================================================="
echo $tcLtG " Good $TIME ! $tcORANGE p8o.ru"
echo $tcDkG "================================================================="
echo $tcLtG " - Hostname :$tcW `hostname -f`"
echo $tcLtG " - IP Address :$tcW $IPADDRESS"
echo $tcLtG " - Release :$tcW $(lsb_release -s -d)[$(cat /etc/astra/build_version)]"
echo $tcLtG " - BREST_BUILD :$tcW $BREST_BUILD"
echo $tcLtG " - Kernel : `uname -a | awk '{print $1" "$3" "$12}'`"
echo $tcLtG " - Users : Currently `users | wc -w` user(s) logged on"
echo $tcLtG " - Server Time : `date`"
echo $tcLtG " - System load : $SYS_LOADS / $NUM_PROCS processes running"
echo $tcLtG " - Memory used % : $MEMORY_USED"
echo $tcLtG " - Swap used % : $SWAP_USED"
echo $tcLtG " - System uptime : $upDays days $upHours hours $upMins minutes"
echo $tcDkG "================================================================="
echo $tcRESET ""
#

153
install-packages.yml Normal file
View File

@ -0,0 +1,153 @@
---
- name: Configure VM
hosts: all
vars_files:
- vars.yml
tasks:
- name: Update apt
ansible.builtin.shell:
cmd: apt update
become: yes
- name: Install packages
apt:
name: "{{ item.name }}"
state: present
loop: "{{ packages_list }}"
become: yes
- name: install Oh-My-Zsh
shell: sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" "" --unattended
args:
creates: "/home/{{ user_name }}/.oh-my-zsh"
- name: set Zsh was dafault for {{ user_name }}
user:
name: "{{ user_name }}"
shell: /bin/zsh
tags:
- zsh-was-default
become: yes
- name: install Powerlevel10k
git:
repo: https://github.com/romkatv/powerlevel10k.git
dest: "/home/{{ user_name }}/.oh-my-zsh/custom/themes/powerlevel10k"
depth: 1
- name: install plugin Zsh-Syntax-Highlighting
git:
repo: https://github.com/zsh-users/zsh-syntax-highlighting.git
dest: "/home/{{ user_name }}/.oh-my-zsh/custom/plugins/zsh-syntax-highlighting"
depth: 1
- name: install plugin Zsh-Autosuggestions
git:
repo: https://github.com/zsh-users/zsh-autosuggestions.git
dest: "/home/{{ user_name }}/.oh-my-zsh/custom/plugins/zsh-autosuggestions"
depth: 1
- name: install plugin Zsh-History-Substring-Search
git:
repo: https://github.com/zsh-users/zsh-history-substring-search.git
dest: "/home/{{ user_name }}/.oh-my-zsh/custom/plugins/zsh-history-substring-search"
depth: 1
- name: copy file .zshrc
copy:
src: data/.zshrc
dest: "/home/{{ user_name }}/.zshrc"
owner: "{{ user_name }}"
group: "{{ user_name }}"
mode: 0644
- name: copy file .p10k.zsh
copy:
src: data/.p10k.zsh
dest: "/home/{{ user_name }}/.p10k.zsh"
owner: "{{ user_name }}"
group: "{{ user_name }}"
mode: 0644
- name: Create directory
file:
path: /etc/apt/keyrings
state: directory
- name: Downloading and accepting gpg key
command: wget -qO- https://raw.githubusercontent.com/eza-community/eza/main/deb.asc | gpg --dearmor -o /etc/apt/keyrings/gierens.gpg
args:
creates: /etc/apt/keyrings/gierens.gpg
register: gpg_key_added
- name: accepting GPG key rewriting
command: echo "Y"
when: gpg_key_added.stdout is search("Файл '/etc/apt/keyrings/gierens.gpg' существует. Записать поверх?")
- name: Add repository to source list
lineinfile:
path: /etc/apt/sources.list.d/gierens.list
line: "deb [signed-by=/etc/apt/keyrings/gierens.gpg] http://deb.gierens.de stable main"
become: yes
- name: Modify permissions of files
file:
path: "{{ item }}"
mode: '0644'
with_items:
- /etc/apt/keyrings/gierens.gpg
- /etc/apt/sources.list.d/gierens.list
become: yes
- name: Update apt and install eza
apt:
name: eza
update_cache: yes
state: present
become: yes
- name: Downloading bat-musl_0.24.0_amd64.deb
shell: wget https://github.com/sharkdp/bat/releases/download/v0.24.0/bat-musl_0.24.0_amd64.deb
args:
chdir: "/home/{{ user_name }}"
- name: Downloading bat-musl_0.24.0_amd64.deb
shell: dpkg -i bat-musl_0.24.0_amd64.deb
args:
chdir: "/home/{{ user_name }}"
become: yes
- name: Install bat-musl_0.24.0_amd64.deb
file:
path: "/home/{{ user_name }}/bat-musl_0.24.0_amd64.deb"
state: absent
- name: Downloading duf_0.8.1_linux_amd64.deb
shell: wget https://github.com/muesli/duf/releases/download/v0.8.1/duf_0.8.1_linux_amd64.deb
args:
chdir: "/home/{{ user_name }}"
- name: Install duf_0.8.1_linux_amd64.deb
shell: dpkg -i duf_0.8.1_linux_amd64.deb
args:
chdir: "/home/{{ user_name }}"
become: yes
- name: rm duf_0.8.1_linux_amd64.deb
file:
path: "/home/{{ user_name }}/duf_0.8.1_linux_amd64.deb"
state: absent
- name: create directory /etc/update-motd.d
file:
path: /etc/update-motd.d
state: directory
become: yes
- name: copy 99-mymotd-generator
copy:
src: data/99-mymotd-generator
dest: /etc/update-motd.d/99-mymotd-generator
mode: '0755'
become: yes
...

2
invertory.ini Executable file
View File

@ -0,0 +1,2 @@
[vm]
192.168.3.227 ansible_user=p8o ansible_ssh_private_key_file=~/.ssh/prokopenko

9
vars.yml Normal file
View File

@ -0,0 +1,9 @@
user_name: p8o
packages_list:
- name: python3
- name: python3-pip
- name: git
- name: zsh
- name: dnsutils
- name: gpg
- name: wget