From 5ac9ed82427832143334d5a76bd083ac22a67c54 Mon Sep 17 00:00:00 2001 From: lulzette Date: Mon, 11 Apr 2022 12:20:12 +0000 Subject: [PATCH] Init --- README | 5 + ansible.cfg | 10 ++ playbook.yml | 8 + roles/coding_vim/files/omb-bashrc | 102 +++++++++++ roles/coding_vim/files/vimrc | 40 +++++ roles/coding_vim/tasks/main.yml | 6 + roles/configs/files/bashrc | 287 ++++++++++++++++++++++++++++++ roles/configs/files/htoprc | 26 +++ roles/configs/files/mcrc | 143 +++++++++++++++ roles/configs/files/screenrc | 10 ++ roles/configs/files/vimrc | 7 + roles/configs/tasks/main.yml | 32 ++++ roles/configs/tasks/root.yml | 56 ++++++ roles/packages/tasks/main.yml | 21 +++ roles/ssh/files/auth_keys | 2 + roles/ssh/files/sshd_config | 65 +++++++ roles/ssh/handlers/main.yml | 4 + roles/ssh/tasks/main.yml | 22 +++ 18 files changed, 846 insertions(+) create mode 100644 README create mode 100644 ansible.cfg create mode 100644 playbook.yml create mode 100644 roles/coding_vim/files/omb-bashrc create mode 100644 roles/coding_vim/files/vimrc create mode 100644 roles/coding_vim/tasks/main.yml create mode 100644 roles/configs/files/bashrc create mode 100644 roles/configs/files/htoprc create mode 100644 roles/configs/files/mcrc create mode 100644 roles/configs/files/screenrc create mode 100644 roles/configs/files/vimrc create mode 100644 roles/configs/tasks/main.yml create mode 100644 roles/configs/tasks/root.yml create mode 100644 roles/packages/tasks/main.yml create mode 100644 roles/ssh/files/auth_keys create mode 100644 roles/ssh/files/sshd_config create mode 100644 roles/ssh/handlers/main.yml create mode 100644 roles/ssh/tasks/main.yml diff --git a/README b/README new file mode 100644 index 0000000..a2df5d7 --- /dev/null +++ b/README @@ -0,0 +1,5 @@ +Здесь лежат конфиги vim, screen, bash, mc + +Ставит пакеты ['mc', 'htop', 'vim', 'screen', 'tmux', 'curl', 'wget', 'bash-completion', 'tree'] + +Fork of "lulzette/devops-shit" diff --git a/ansible.cfg b/ansible.cfg new file mode 100644 index 0000000..e9afcdd --- /dev/null +++ b/ansible.cfg @@ -0,0 +1,10 @@ +[defaults] +INVENTORY = ~/inventory +pipelining = True + +#strategy = free + +[ssh_connection] +ssh_args = -o ControlMaster=auto -o ControlPersist=60s +pipelining = True + diff --git a/playbook.yml b/playbook.yml new file mode 100644 index 0000000..e9a383f --- /dev/null +++ b/playbook.yml @@ -0,0 +1,8 @@ +--- +- hosts: all +# strategy: free + roles: + - { role: packages, become: true} + - { role: ssh, become: true} + - configs + diff --git a/roles/coding_vim/files/omb-bashrc b/roles/coding_vim/files/omb-bashrc new file mode 100644 index 0000000..be4531b --- /dev/null +++ b/roles/coding_vim/files/omb-bashrc @@ -0,0 +1,102 @@ +# Path to your oh-my-bash installation. +export OSH=/root/.oh-my-bash + +# Set name of the theme to load. Optionally, if you set this to "random" +# it'll load a random theme each time that oh-my-bash is loaded. +OSH_THEME="90210" + +# 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 the following line to disable bi-weekly auto-update checks. +# DISABLE_AUTO_UPDATE="true" + +# Uncomment the following line to change how often to auto-update (in days). +# export UPDATE_OSH_DAYS=13 + +# 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" + +# 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. +# The optional three formats: "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd" +# HIST_STAMPS="mm/dd/yyyy" + +# Would you like to use another custom folder than $OSH/custom? +# OSH_CUSTOM=/path/to/new-custom-folder + +# Which completions would you like to load? (completions can be found in ~/.oh-my-bash/completions/*) +# Custom completions may be added to ~/.oh-my-bash/custom/completions/ +# Example format: completions=(ssh git bundler gem pip pip3) +# Add wisely, as too many completions slow down shell startup. +completions=( + git + composer + ssh +) + +# Which aliases would you like to load? (aliases can be found in ~/.oh-my-bash/aliases/*) +# Custom aliases may be added to ~/.oh-my-bash/custom/aliases/ +# Example format: aliases=(vagrant composer git-avh) +# Add wisely, as too many aliases slow down shell startup. +aliases=( + general +) + +# Which plugins would you like to load? (plugins can be found in ~/.oh-my-bash/plugins/*) +# Custom plugins may be added to ~/.oh-my-bash/custom/plugins/ +# Example format: plugins=(rails git textmate ruby lighthouse) +# Add wisely, as too many plugins slow down shell startup. +plugins=( + git + bashmarks +) + +source $OSH/oh-my-bash.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" + +# ssh +# export SSH_KEY_PATH="~/.ssh/rsa_id" + +# Set personal aliases, overriding those provided by oh-my-bash libs, +# plugins, and themes. Aliases can be placed here, though oh-my-bash +# users are encouraged to define aliases within the OSH_CUSTOM folder. +# For a full list of active aliases, run `alias`. +# +# Example aliases +# alias bashconfig="mate ~/.bashrc" +# alias ohmybash="mate ~/.oh-my-bash" + diff --git a/roles/coding_vim/files/vimrc b/roles/coding_vim/files/vimrc new file mode 100644 index 0000000..9fa6cc0 --- /dev/null +++ b/roles/coding_vim/files/vimrc @@ -0,0 +1,40 @@ +set nocompatible " be iMproved, required +filetype off " required + +"===================================================== +" Vundle settings +"===================================================== +" set the runtime path to include Vundle and initialize +set rtp+=~/.vim/bundle/Vundle.vim +call vundle#begin() + +Plugin 'gmarik/Vundle.vim' " let Vundle manage Vundle, required + +"---------=== Code/project navigation ===------------- +Plugin 'scrooloose/nerdtree' " Project and file navigation +Plugin 'majutsushi/tagbar' " Class/module browser + +"------------------=== Other ===---------------------- +Plugin 'bling/vim-airline' " Lean & mean status/tabline for vim +Plugin 'fisadev/FixedTaskList.vim' " Pending tasks list +Plugin 'rosenfeld/conque-term' " Consoles as buffers +Plugin 'tpope/vim-surround' " Parentheses, brackets, quotes, XML tags, and more + +"--------------=== Snippets support ===--------------- +"Plugin 'garbas/vim-snipmate' " Snippets manager +Plugin 'MarcWeber/vim-addon-mw-utils' " dependencies #1 +Plugin 'tomtom/tlib_vim' " dependencies #2 +Plugin 'honza/vim-snippets' " snippets repo + +"---------------=== Languages support ===------------- +" --- Python --- +Plugin 'klen/python-mode' " Python mode (docs, refactor, lints, highlighting, run and ipdb and more) +Plugin 'davidhalter/jedi-vim' " Jedi-vim autocomplete plugin +Plugin 'mitsuhiko/vim-jinja' " Jinja support for vim +Plugin 'mitsuhiko/vim-python-combined' " Combined Python 2/3 for Vim + +call vundle#end() " required +filetype on +filetype plugin on +filetype plugin indent on + diff --git a/roles/coding_vim/tasks/main.yml b/roles/coding_vim/tasks/main.yml new file mode 100644 index 0000000..f1f5ed2 --- /dev/null +++ b/roles/coding_vim/tasks/main.yml @@ -0,0 +1,6 @@ +--- + + - name: Put vim config + template: + src: files/vimrc + dest: /etc/vimrc diff --git a/roles/configs/files/bashrc b/roles/configs/files/bashrc new file mode 100644 index 0000000..996bcbe --- /dev/null +++ b/roles/configs/files/bashrc @@ -0,0 +1,287 @@ +# ~/.bashrc: executed by bash(1) for non-login shells. +# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc) +# for examples + +# If not running interactively, don't do anything +case $- in + *i*) ;; + *) return;; +esac + +# don't put duplicate lines or lines starting with space in the history. +# See bash(1) for more options +HISTCONTROL=ignoreboth + +# append to the history file, don't overwrite it +shopt -s histappend + +# for setting history length see HISTSIZE and HISTFILESIZE in bash(1) +HISTSIZE=1000 +HISTFILESIZE=2000 + +# check the window size after each command and, if necessary, +# update the values of LINES and COLUMNS. +shopt -s checkwinsize + +# If set, the pattern "**" used in a pathname expansion context will +# match all files and zero or more directories and subdirectories. +#shopt -s globstar + +# make less more friendly for non-text input files, see lesspipe(1) +[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)" + +# set variable identifying the chroot you work in (used in the prompt below) +if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then + debian_chroot=$(cat /etc/debian_chroot) +fi + +# set a fancy prompt (non-color, unless we know we "want" color) +case "$TERM" in + xterm-color|*-256color) color_prompt=yes;; +esac + +# uncomment for a colored prompt, if the terminal has the capability; turned +# off by default to not distract the user: the focus in a terminal window +# should be on the output of commands, not on the prompt +#force_color_prompt=yes + +if [ -n "$force_color_prompt" ]; then + if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then + # We have color support; assume it's compliant with Ecma-48 + # (ISO/IEC-6429). (Lack of such support is extremely rare, and such + # a case would tend to support setf rather than setaf.) + color_prompt=yes + else + color_prompt= + fi +fi + +if [ "$color_prompt" = yes ]; then + PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ ' +else + PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ ' +fi +unset color_prompt force_color_prompt + +# If this is an xterm set the title to user@host:dir +case "$TERM" in +xterm*|rxvt*) + PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1" + ;; +*) + ;; +esac + +# enable color support of ls and also add handy aliases +if [ -x /usr/bin/dircolors ]; then + test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)" + alias ls='ls --color=auto' + #alias dir='dir --color=auto' + #alias vdir='vdir --color=auto' + + alias grep='grep --color=auto' + alias fgrep='fgrep --color=auto' + alias egrep='egrep --color=auto' +fi + +# colored GCC warnings and errors +#export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01' + +# some more ls aliases +alias ll='ls -alF' +alias la='ls -A' +alias l='ls -CFl' + +# Alias definitions. +# You may want to put all your additions into a separate file like +# ~/.bash_aliases, instead of adding them here directly. +# See /usr/share/doc/bash-doc/examples in the bash-doc package. + +if [ -f ~/.bash_aliases ]; then + . ~/.bash_aliases +fi + +# enable programmable completion features (you don't need to enable +# this, if it's already enabled in /etc/bash.bashrc and /etc/profile +# sources /etc/bash.bashrc). +if ! shopt -oq posix; then + if [ -f /usr/share/bash-completion/bash_completion ]; then + . /usr/share/bash-completion/bash_completion + elif [ -f /etc/bash_completion ]; then + . /etc/bash_completion + fi +fi + +# custom aliases +alias gc='git clone' +alias g=git +alias ga='git add' +alias gaa='git add --all' +alias gam='git am' +alias gama='git am --abort' +alias gamc='git am --continue' +alias gams='git am --skip' +alias gamscp='git am --show-current-patch' +alias gap='git apply' +alias gapa='git add --patch' +alias gapt='git apply --3way' +alias gau='git add --update' +alias gav='git add --verbose' +alias gb='git branch' +alias gbD='git branch -D' +alias gba='git branch -a' +alias gbd='git branch -d' +alias gbda='git branch --no-color --merged | command grep -vE "^([+*]|\s*($(git_main_branch)|$(git_develop_branch))\s*$)" | command xargs git branch -d 2>/dev/null' +alias gbl='git blame -b -w' +alias gbnm='git branch --no-merged' +alias gbr='git branch --remote' +alias gbs='git bisect' +alias gbsb='git bisect bad' +alias gbsg='git bisect good' +alias gbsr='git bisect reset' +alias gbss='git bisect start' +alias gc='git commit -v' +alias 'gc!'='git commit -v --amend' +alias gca='git commit -v -a' +alias 'gca!'='git commit -v -a --amend' +alias gcam='git commit -a -m' +alias 'gcan!'='git commit -v -a --no-edit --amend' +alias 'gcans!'='git commit -v -a -s --no-edit --amend' +alias gcas='git commit -a -s' +alias gcasm='git commit -a -s -m' +alias gcb='git checkout -b' +alias gcd='git checkout $(git_develop_branch)' +alias gcf='git config --list' +alias gcl='git clone --recurse-submodules' +alias gclean='git clean -id' +alias gcm='git checkout $(git_main_branch)' +alias gcmsg='git commit -m' +alias 'gcn!'='git commit -v --no-edit --amend' +alias gco='git checkout' +alias gcor='git checkout --recurse-submodules' +alias gcount='git shortlog -sn' +alias gcp='git cherry-pick' +alias gcpa='git cherry-pick --abort' +alias gcpc='git cherry-pick --continue' +alias gcs='git commit -S' +alias gcsm='git commit -s -m' +alias gcss='git commit -S -s' +alias gcssm='git commit -S -s -m' +alias gd='git diff' +alias gdca='git diff --cached' +alias gdct='git describe --tags $(git rev-list --tags --max-count=1)' +alias gdcw='git diff --cached --word-diff' +alias gds='git diff --staged' +alias gdt='git diff-tree --no-commit-id --name-only -r' +alias gdup='git diff @{upstream}' +alias gdw='git diff --word-diff' +alias gf='git fetch' +alias gfa='git fetch --all --prune --jobs=10' +alias gfg='git ls-files | grep' +alias gfo='git fetch origin' +alias gg='git gui citool' +alias gga='git gui citool --amend' +alias ggpull='git pull origin "$(git_current_branch)"' +alias ggpush='git push origin "$(git_current_branch)"' +alias ggsup='git branch --set-upstream-to=origin/$(git_current_branch)' +alias ghh='git help' +alias gignore='git update-index --assume-unchanged' +alias gignored='git ls-files -v | grep "^[[:lower:]]"' +alias git-svn-dcommit-push='git svn dcommit && git push github $(git_main_branch):svntrunk' +alias gk='\gitk --all --branches &!' +alias gke='\gitk --all $(git log -g --pretty=%h) &!' +alias gl='git pull' +alias glg='git log --stat' +alias glgg='git log --graph' +alias glgga='git log --graph --decorate --all' +alias glgm='git log --graph --max-count=10' +alias glgp='git log --stat -p' +alias glo='git log --oneline --decorate' +alias glod='git log --graph --pretty='\''%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset'\' +alias glods='git log --graph --pretty='\''%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset'\'' --date=short' +alias glog='git log --oneline --decorate --graph' +alias gloga='git log --oneline --decorate --graph --all' +alias glol='git log --graph --pretty='\''%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset'\' +alias glola='git log --graph --pretty='\''%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset'\'' --all' +alias glols='git log --graph --pretty='\''%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset'\'' --stat' +alias glp=_git_log_prettily +alias glum='git pull upstream $(git_main_branch)' +alias gm='git merge' +alias gma='git merge --abort' +alias gmom='git merge origin/$(git_main_branch)' +alias gmtl='git mergetool --no-prompt' +alias gmtlvim='git mergetool --no-prompt --tool=vimdiff' +alias gmum='git merge upstream/$(git_main_branch)' +alias gp='git push' +alias gpd='git push --dry-run' +alias gpf='git push --force-with-lease' +alias 'gpf!'='git push --force' +alias gpoat='git push origin --all && git push origin --tags' +alias gpr='git pull --rebase' +alias gpristine='git reset --hard && git clean -dffx' +alias gpsup='git push --set-upstream origin $(git_current_branch)' +alias gpu='git push upstream' +alias gpv='git push -v' +alias gr='git remote' +alias gra='git remote add' +alias grb='git rebase' +alias grba='git rebase --abort' +alias grbc='git rebase --continue' +alias grbd='git rebase $(git_develop_branch)' +alias grbi='git rebase -i' +alias grbm='git rebase $(git_main_branch)' +alias grbo='git rebase --onto' +alias grbom='git rebase origin/$(git_main_branch)' +alias grbs='git rebase --skip' +alias grep='grep --color=auto --exclude-dir={.bzr,CVS,.git,.hg,.svn,.idea,.tox}' +alias grev='git revert' +alias grh='git reset' +alias grhh='git reset --hard' +alias grm='git rm' +alias grmc='git rm --cached' +alias grmv='git remote rename' +alias groh='git reset origin/$(git_current_branch) --hard' +alias grrm='git remote remove' +alias grs='git restore' +alias grset='git remote set-url' +alias grss='git restore --source' +alias grst='git restore --staged' +alias grt='cd "$(git rev-parse --show-toplevel || echo .)"' +alias gru='git reset --' +alias grup='git remote update' +alias grv='git remote -v' +alias gsb='git status -sb' +alias gsd='git svn dcommit' +alias gsh='git show' +alias gsi='git submodule init' +alias gsps='git show --pretty=short --show-signature' +alias gsr='git svn rebase' +alias gss='git status -s' +alias gst='git status' +alias gsta='git stash push' +alias gstaa='git stash apply' +alias gstall='git stash --all' +alias gstc='git stash clear' +alias gstd='git stash drop' +alias gstl='git stash list' +alias gstp='git stash pop' +alias gsts='git stash show --text' +alias gsu='git submodule update' +alias gsw='git switch' +alias gswc='git switch -c' +alias gswd='git switch $(git_develop_branch)' +alias gswm='git switch $(git_main_branch)' +alias gtl='gtl(){ git tag --sort=-v:refname -n -l "${1}*" }; noglob gtl' +alias gts='git tag -s' +alias gtv='git tag | sort -V' +alias gunignore='git update-index --no-assume-unchanged' +alias gunwip='git log -n 1 | grep -q -c "\-\-wip\-\-" && git reset HEAD~1' +alias gup='git pull --rebase' +alias gupa='git pull --rebase --autostash' +alias gupav='git pull --rebase --autostash -v' +alias gupv='git pull --rebase -v' +alias gwch='git whatchanged -p --abbrev-commit --pretty=medium' +alias gwip='git add -A; git rm $(git ls-files --deleted) 2> /dev/null; git commit --no-verify --no-gpg-sign -m "--wip-- [skip ci]"' + +export PS1='\e[0;35m\t \e[0;32m\u@\h:\w\e[m\n\$ ' +figlet `hostname` diff --git a/roles/configs/files/htoprc b/roles/configs/files/htoprc new file mode 100644 index 0000000..7cf385b --- /dev/null +++ b/roles/configs/files/htoprc @@ -0,0 +1,26 @@ +# Beware! This file is rewritten by htop when settings are changed in the interface. +# The parser is also very primitive, and not human-friendly. +fields=0 48 17 18 38 39 40 2 46 47 49 1 +sort_key=46 +sort_direction=1 +hide_threads=1 +hide_kernel_threads=1 +hide_userland_threads=1 +shadow_other_users=0 +show_thread_names=0 +show_program_path=1 +highlight_base_name=0 +highlight_megabytes=1 +highlight_threads=1 +tree_view=1 +header_margin=1 +detailed_cpu_time=0 +cpu_count_from_zero=0 +update_process_names=0 +account_guest_in_cpu_meter=0 +color_scheme=0 +delay=15 +left_meters=AllCPUs Memory Swap +left_meter_modes=1 1 1 +right_meters=Tasks LoadAverage Uptime +right_meter_modes=2 2 2 diff --git a/roles/configs/files/mcrc b/roles/configs/files/mcrc new file mode 100644 index 0000000..4c18522 --- /dev/null +++ b/roles/configs/files/mcrc @@ -0,0 +1,143 @@ +[Midnight-Commander] +verbose=true +shell_patterns=true +auto_save_setup=true +preallocate_space=false +auto_menu=false +use_internal_view=true +use_internal_edit=false +clear_before_exec=true +confirm_delete=true +confirm_overwrite=true +confirm_execute=false +confirm_history_cleanup=true +confirm_exit=false +confirm_directory_hotlist_delete=false +confirm_view_dir=false +safe_delete=false +safe_overwrite=false +use_8th_bit_as_meta=false +mouse_move_pages_viewer=true +mouse_close_dialog=false +fast_refresh=false +drop_menus=false +wrap_mode=true +old_esc_mode=true +cd_symlinks=true +show_all_if_ambiguous=false +use_file_to_guess_type=true +alternate_plus_minus=false +only_leading_plus_minus=true +show_output_starts_shell=false +xtree_mode=false +file_op_compute_totals=true +classic_progressbar=true +use_netrc=true +ftpfs_always_use_proxy=false +ftpfs_use_passive_connections=true +ftpfs_use_passive_connections_over_proxy=false +ftpfs_use_unix_list_options=true +ftpfs_first_cd_then_ls=true +ignore_ftp_chattr_errors=true +editor_fill_tabs_with_spaces=false +editor_return_does_auto_indent=false +editor_backspace_through_tabs=false +editor_fake_half_tabs=true +editor_option_save_position=true +editor_option_auto_para_formatting=false +editor_option_typewriter_wrap=false +editor_edit_confirm_save=true +editor_syntax_highlighting=true +editor_persistent_selections=true +editor_drop_selection_on_copy=true +editor_cursor_beyond_eol=false +editor_cursor_after_inserted_block=false +editor_visible_tabs=true +editor_visible_spaces=true +editor_line_state=false +editor_simple_statusbar=false +editor_check_new_line=false +editor_show_right_margin=false +editor_group_undo=true +editor_state_full_filename=true +editor_ask_filename_before_edit=false +nice_rotating_dash=true +mcview_remember_file_position=false +auto_fill_mkdir_name=true +copymove_persistent_attr=true +pause_after_run=1 +mouse_repeat_rate=100 +double_click_speed=250 +old_esc_mode_timeout=1000000 +max_dirt_limit=10 +num_history_items_recorded=60 +vfs_timeout=60 +ftpfs_directory_timeout=900 +ftpfs_retry_seconds=30 +fish_directory_timeout=900 +editor_tab_spacing=8 +editor_word_wrap_line_length=72 +editor_option_save_mode=0 +editor_backup_extension=~ +editor_filesize_threshold=64M +editor_stop_format_chars=-+*\\,.;:&> +mcview_eof= +skin=modarcon16root-defbg-thin + +[Layout] +output_lines=0 +left_panel_size=118 +top_panel_size=0 +message_visible=true +keybar_visible=true +xterm_title=true +command_prompt=true +menubar_visible=true +free_space=true +horizontal_split=false +vertical_equal=true +horizontal_equal=true + +[Misc] +timeformat_recent=%b %e %H:%M +timeformat_old=%b %e %Y +ftp_proxy_host=gate +ftpfs_password=anonymous@ +display_codepage=UTF-8 +source_codepage=Other_8_bit +autodetect_codeset= +spell_language=en +clipboard_store= +clipboard_paste= + +[Colors] +base_color= +xterm-256color= +color_terminals= + +[Panels] +show_mini_info=true +kilobyte_si=false +mix_all_files=false +show_backups=true +show_dot_files=true +fast_reload=false +fast_reload_msg_shown=false +mark_moves_down=true +reverse_files_only=true +auto_save_setup_panels=false +navigate_with_arrows=false +panel_scroll_pages=true +panel_scroll_center=false +mouse_move_pages=true +filetype_mode=true +permission_mode=false +torben_fj_mode=false +quick_search_mode=2 +select_flags=6 + +[Panelize] +Find *.orig after patching=find . -name \\*.orig -print +Find SUID and SGID programs=find . \\( \\( -perm -04000 -a -perm /011 \\) -o \\( -perm -02000 -a -perm /01 \\) \\) -print +Find rejects after patching=find . -name \\*.rej -print +Modified git files=git ls-files --modified diff --git a/roles/configs/files/screenrc b/roles/configs/files/screenrc new file mode 100644 index 0000000..d0a2233 --- /dev/null +++ b/roles/configs/files/screenrc @@ -0,0 +1,10 @@ +startup_message off + +# Disable visual bell +vbell off + +# Set scrollback buffer to 10000 +defscrollback 10000 + +hardstatus alwayslastline +hardstatus string '%{= kG}[ %{G}%H %{g} - %S ][%= %{= kw}%?%-Lw%?%{r}(%{W}%n*%f%t%?(%u)%?%{r})%{w}%?%+Lw%?%?%= %{g}][%{B} %d.%m %{W}%c %{g}]' diff --git a/roles/configs/files/vimrc b/roles/configs/files/vimrc new file mode 100644 index 0000000..ecefe96 --- /dev/null +++ b/roles/configs/files/vimrc @@ -0,0 +1,7 @@ +set mouse= +syntax on +"colorscheme desert +colorscheme zellner +set shiftwidth=2 +set tabstop=2 +set expandtab diff --git a/roles/configs/tasks/main.yml b/roles/configs/tasks/main.yml new file mode 100644 index 0000000..320bf53 --- /dev/null +++ b/roles/configs/tasks/main.yml @@ -0,0 +1,32 @@ +--- +- name: Do root tasks + import_tasks: root.yml + become: true + +- name: Check for OMB + stat: + path: "{{ ansible_user_dir }}/.oh-my-bash" + register: omb_flag + +- debug: + msg: 'OMB is not installed, run: bash -c "$(curl -fsSL https://raw.githubusercontent.com/ohmybash/oh-my-bash/master/tools/install.sh)"' + when: not omb_flag.stat.exists + +- name: Put simple bashrc config + template: + src: files/bashrc + dest: "{{ ansible_user_dir }}/.bashrc" + when: not omb_flag.stat.exists + + # - name: Put omb config + #template: + # src: files/omb-bashrc + # dest: "{{ ansible_user_dir }}/.bashrc" + #when: omb_flag.stat.exists + +# FIXME: logout from shell +# - name: Install OMB +# shell: bash -c "$(curl -fsSL https://raw.githubusercontent.com/ohmybash/oh-my-bash/master/tools/install.sh)" +# when: not omb_flag.stat.exists + + diff --git a/roles/configs/tasks/root.yml b/roles/configs/tasks/root.yml new file mode 100644 index 0000000..871c5a2 --- /dev/null +++ b/roles/configs/tasks/root.yml @@ -0,0 +1,56 @@ +--- +- name: Create wheel group + group: + name: wheel + state: present + when: "'localgroup' in group_names" + +- name: Create losted user + user: + name: losted + state: present + group: wheel + shell: /bin/bash + when: "'localgroup' in group_names" + +- name: Set NOPASSWORD in sudoers + lineinfile: + dest: /etc/sudoers + state: present + regexp: '^%sudo' + line: '%sudo ALL=(ALL) NOPASSWD: ALL' + validate: 'visudo -cf %s' + when: "'localgroup' in group_names" + +- name: Put htop config + template: + src: files/htoprc + dest: /etc/htoprc +- name: Put mc config + template: + src: files/mcrc + dest: /etc/mc/mc.ini +- name: Remove vim root config + become: yes + file: + path: /root/.viminfo + state: absent +- name: Put vim config + template: + src: files/vimrc + dest: /etc/vimrc +- name: Put screen config + template: + src: files/screenrc + dest: /etc/screenrc +- name: Change hostname + ansible.builtin.hostname: + name: "{{ inventory_hostname }}" +- name: Do not show news on login + file: + path: /etc/update-motd.d/50-motd-news + mode: 644 +- name: Do not show help on login + file: + path: /etc/update-motd.d/10-help-text + mode: 644 diff --git a/roles/packages/tasks/main.yml b/roles/packages/tasks/main.yml new file mode 100644 index 0000000..56ef29e --- /dev/null +++ b/roles/packages/tasks/main.yml @@ -0,0 +1,21 @@ +--- +- name: Install Debian packages + apt: + name: ['mc', 'htop', 'vim', 'screen', 'tmux', 'curl', 'wget', 'bash-completion', 'tree', 'figlet'] + state: present + update_cache: yes + when: ansible_facts['os_family'] == "Debian" + +- name: Install CentOS epel + yum: + name: 'epel-release' + update_cache: yes + state: present + when: ansible_facts['os_family'] == "RedHat" + +- name: Install RedHat packages + yum: + name: ['epel-release', 'mc', 'htop', 'vim', 'screen', 'tmux', 'curl', 'wget', 'bash-completion'] + update_cache: yes + state: present + when: ansible_facts['os_family'] == "RedHat" diff --git a/roles/ssh/files/auth_keys b/roles/ssh/files/auth_keys new file mode 100644 index 0000000..901fc0c --- /dev/null +++ b/roles/ssh/files/auth_keys @@ -0,0 +1,2 @@ +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3b/t76DskXtbMwVpyjpXoOKG/ezcLVGPM1l3OAU2mBon9qdt2WgLCiwSiFdbrEbWKLFP7+bEHkmcj5XWCBGpLlKQUn3GsnLqJu16ue+2qI3jHv4TTyNwN3AzERz5BQdPgat1qYTZ6UTkLdT208RDhVn7/sSx+zmdHbuX3kR9TgF43RjS2ijV5/9iaPbgnXIEL74eeJ2Fl8z+FaCWpe7Ja12R+rZKtpBGZQy4L37KlSPw8CC5vVkrmfvriSmV2J/OaaleosDqENFRVUHzzFTIt+CARMMkSKqLmFausb1I00vcL9iuh3islJIZvidfZKL20eRxauK3Q2dyH+cFu90yx knflkr@arch-llz +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCkRVTyHkfuF2m061Pz0HK2hWf8ZySByDaLK23L0AJTM9xZ1tGktUOm/qtJ0vV5fgv+OPrdb3s+e2QXpSMlUcqaxyV8Q1rGx4cWnEBtmITSp6cMeKNPtAUC6HBt4rVT5grDR+N3ZmmjoiaYqFzvN6cGiSsgoRfi9BKfyz5vN/pi4EYPaQNE7UXja0NCHBSGVp6Cc+bs6XFcpCaUZ81DDcrNMKURW0nLKdHCSswvd+ep0jP1znGnvFF1uZLcFLmsWX8kpd5aUFWHk4JT8yZNhnCYhVOOTc2/O3mVKeAF+SR+2BOV03Iu6M4QHsRC8PAHRVIcnrDDr2/0rmEm8c58d8AZ7j/4P5ckZ5uBmDE6LNJ3C4JA6/tTSWNCuDgV6igCc15LVuuW/ZpSxk+/247q2boVdnumD1bXtx/lcSwb4+KEIqlXc1pIvX6hcN/aT3nuDpcWZPAZFCPUrxCVvJCET6XklycqRqJrVaCqraTWuJv9TmY8i19eZzL1Q8e9jfXDgZs= root@playground-clo diff --git a/roles/ssh/files/sshd_config b/roles/ssh/files/sshd_config new file mode 100644 index 0000000..95d5e78 --- /dev/null +++ b/roles/ssh/files/sshd_config @@ -0,0 +1,65 @@ +Port {{ ssh_port }} +#AddressFamily any +#ListenAddress 0.0.0.0 +#ListenAddress :: + +#HostKey /etc/ssh/ssh_host_rsa_key +#HostKey /etc/ssh/ssh_host_ecdsa_key +#HostKey /etc/ssh/ssh_host_ed25519_key + +# Ciphers and keying +#RekeyLimit default none + +# Logging +#SyslogFacility AUTH +#LogLevel INFO + +# Authentication: + +#LoginGraceTime 2m +PermitRootLogin prohibit-password +#StrictModes yes +#MaxAuthTries 6 +#MaxSessions 10 + + +AuthorizedKeysFile .ssh/authorized_keys .ssh/authorized_keys2 /etc/ssh/auth_keys +PasswordAuthentication no +PermitEmptyPasswords no + +# Change to yes to enable challenge-response passwords (beware issues with +# some PAM modules and threads) +ChallengeResponseAuthentication no + +UsePAM yes + +#AllowAgentForwarding yes +#AllowTcpForwarding yes +#GatewayPorts no +X11Forwarding yes +#X11DisplayOffset 10 +#X11UseLocalhost yes +#PermitTTY yes +PrintMotd no +PrintLastLog yes +#TCPKeepAlive yes +#PermitUserEnvironment no +#Compression delayed +#ClientAliveInterval 0 +#ClientAliveCountMax 3 +UseDNS no +#PidFile /var/run/sshd.pid +#MaxStartups 10:30:100 +#PermitTunnel no +#ChrootDirectory none +#VersionAddendum none + +# no default banner path +#Banner none + +# Allow client to pass locale environment variables +AcceptEnv LANG LC_* + +# override default of no subsystems +Subsystem sftp /usr/lib/openssh/sftp-server + diff --git a/roles/ssh/handlers/main.yml b/roles/ssh/handlers/main.yml new file mode 100644 index 0000000..895ef74 --- /dev/null +++ b/roles/ssh/handlers/main.yml @@ -0,0 +1,4 @@ +- name: Reload sshd + ansible.builtin.service: + name: sshd + state: restarted diff --git a/roles/ssh/tasks/main.yml b/roles/ssh/tasks/main.yml new file mode 100644 index 0000000..cf37893 --- /dev/null +++ b/roles/ssh/tasks/main.yml @@ -0,0 +1,22 @@ +--- +- name: Put authorized keys + template: + src: files/auth_keys + dest: /etc/ssh/auth_keys + +- name: Put sshd config + template: + src: files/sshd_config + dest: /etc/ssh/sshd_config + notify: Reload sshd + +- name: Set different SSH port + lineinfile: + dest: /etc/ssh/sshd_config + state: present + regexp: '^Port' + line: 'Port 6666' + validate: 'sshd -t -f %s' + notify: Reload sshd + when: "'publicservices' in group_names" +