Hyperling
1f5fdb7eb5
* Add a few aliases for initializing projects. * Begin creating executables in bin for flatpaks. Create an array to reduce future changes. * Add quotes. * Create files as user and set executable permissions. * Split exec dir from array section. * Increase interval for Telegraf but keep the flush at 30s. * Add alias goodbye/bye, modify alias names for initializing program and video projects. * Add newline. * Add content to file to remove warning. * Use arrays for Flatpak sections. Create executable files for them. * Move sudoer files into shared folder. * First stab at automating a GitLab install. * First stab at automating DWM install. * Fix 'usr' typo. * Lowercase dwm. * Fix config play. Install font-awesome. * Add placeholder. * Add dmenu and st. * Fix typo. Hopefully also fixes ~/bin executables. * Add Signal. Remove Discord. * Remove extra line. * Add newline. * Move dbus-launch to correct app. * Fix clock minutes. * Add server for GitLab. * Change check, package was not registering anything. * Change success to failed. * Change to http. Will use reverse proxy. * Remove useless sudo. Go ahead and allow postfix to be installed. * Fix debug option "var". * Only give the out lines. Remove exit, doesn't stop the job. * Add a few games and test them on dell-laptop. * Ignore Lutris errors, Rolling Rhino doesn't like the PPA. ;) * Add goodbye for updating then quitting. * Add airbook to gaming. * Add dnf. * Fix missing underscores. * Install cronie on Fedora. * Beginning to add Fedora. * Add Fedora values. * Make font-awesome optional since it may need installed manually on some systems. * Fix typo in ignore_errors. * Allow DWM to fail, won't work for all workstations. Fedora doesn't have X11 headers. * Most dists are using python3-psutil for the psutil package name. Make it the default. * Fix firefox_esr variable. * More Fedora support. * Move installation of cron to more applicable task list. * Fic nfs-utils typo. * The font is honestly pretty important. ;) * Add Librewolf for testing vs Brave. * For some reason the other link didn't work for Fedora, add the one from flatpak's instructions. * Fedora status update. * Add games to Inspiron. * LibreWolf is amazing. Use it as default if available. * Use English rather than code for `and` and `or`. * Always have LibreWolf pinned if it's available. Brave should still be the main browser for URL-clicking compatibility. * Fix comma. * Add entry for testing Fedora Gitlab server. * Attempt to automate more of the Gitlab setup, especially the part of being behind a reverse proxy. Also add Fedora family support. * Specify the package managers for Gitlab. * Add missing bracket. * Add another missing bracket. * Fix gitlab's when clause. * Another fix for the gitlab when. * Change original gitlab install to be Community Edition. * Fix mgr typo. Create config file if it doesn't exist. * Remove duplicate `when` on Lutris uninstall. * Gitlab script gets a packagecloud.io error for Fedora. Looks like only CentOS and its derivatives are supported. * Update status of Fedora.
206 lines
5.8 KiB
YAML
206 lines
5.8 KiB
YAML
---
|
|
# Create users for all machines.
|
|
|
|
## Variables ##
|
|
|
|
- name: General | Account Management | Users | Use BASH (Default)
|
|
set_fact:
|
|
ling_shell: "{{ bash_exec.stdout }}"
|
|
|
|
- name: General | Account Management | Users | Use ZSH (Arch+Manjaro)
|
|
set_fact:
|
|
ling_shell: "{{ zsh_exec.stdout }}"
|
|
when: ansible_distribution == "Archlinux"
|
|
|
|
|
|
## Root ##
|
|
|
|
- name: General | Account Management | Users | Root
|
|
user:
|
|
name: root
|
|
shell: "{{ bash_exec.stdout }}"
|
|
create_home: yes
|
|
generate_ssh_key: yes
|
|
register: user_root
|
|
|
|
|
|
## Scheduler ##
|
|
|
|
- name: General | Account Management | Users | Ansible
|
|
user:
|
|
name: ansible
|
|
comment: Ansible
|
|
system: yes
|
|
register: user_ansible
|
|
|
|
|
|
## Superuser ##
|
|
|
|
- name: General | Account Management | Users | Hyperling
|
|
user:
|
|
name: ling
|
|
comment: Hyperling
|
|
groups:
|
|
- sudo
|
|
- video
|
|
- render
|
|
append: yes
|
|
shell: "{{ ling_shell }}"
|
|
create_home: yes
|
|
generate_ssh_key: yes
|
|
register: user_ling
|
|
|
|
- name: General | Account Management | Users | Hyperling | Test Logging In
|
|
shell: "echo SUCCESS"
|
|
args:
|
|
executable: "{{ ling_shell }}"
|
|
become_user: ling
|
|
|
|
|
|
## Folders ##
|
|
|
|
- name: General | Account Management | Users | Folders | Root | Create bin, Downloads, TRASH
|
|
file:
|
|
path: "{{ item }}"
|
|
state: directory
|
|
mode: '0755'
|
|
loop:
|
|
- "{{ user_root.home }}/bin"
|
|
- "{{ user_root.home }}/Downloads"
|
|
- "{{ user_root.home }}/TRASH"
|
|
when: user_root.home != ""
|
|
|
|
- name: General | Account Management | Users | Folders | Hyperling | Create bin, LBRY, TRASH
|
|
file:
|
|
path: "{{ item }}"
|
|
state: directory
|
|
mode: '0755'
|
|
loop:
|
|
- "{{ user_ling.home }}/bin"
|
|
- "{{ user_ling.home }}/LBRY"
|
|
- "{{ user_ling.home }}/TRASH"
|
|
become_user: ling
|
|
when: user_ling.home != ""
|
|
|
|
- name: General | Account Management | Users | Folders | Home Directories 700
|
|
shell: "chmod 700 {{ user_ling.home }}/../*"
|
|
|
|
|
|
## Files ##
|
|
|
|
- name: General | Account Management | Users | Files | RC Variables
|
|
set_fact:
|
|
alias_cp: alias cp='cp -v'
|
|
alias_mv: alias mv='mv -v'
|
|
alias_rm: alias rm='echo "Use mv ~/TRASH/ instead!"'
|
|
alias_clean: alias clean='mv * ~/TRASH/'
|
|
alias_clean_trash: alias clean-trash='sh -c "rm -rfv ~/TRASH/*"'
|
|
path_additions: export PATH="~/bin:$PATH"
|
|
function_wttr: |
|
|
function weather() {
|
|
# 20210301 - Someone showed me an awesome weather API! Had to implement it!
|
|
if [[ "$1" == "-"* || $2 != "" ]]; then
|
|
echo 'USAGE: weather [location]
|
|
Any "-" paramaters call the usage since this function does not take any options.
|
|
Location is optional since the API can determine your connection'"'"'s location.
|
|
Useful location types:
|
|
$zip_code | Ex: 12345
|
|
$city,$state | Ex: Austin,Texas
|
|
@$domain_dot_extension | Ex: @github.com
|
|
~$special_location | Ex: ~Manitou Incline
|
|
Full documentation: https://github.com/chubin/wttr.in'
|
|
return 1
|
|
fi
|
|
curl "https://wttr.in/${1//\ /+}"
|
|
}
|
|
PS1: export PS1='[\u@\h \w]\$ '
|
|
remount: alias remount='sudo umount /mnt/*; sudo umount /mnt/*/*; sudo mount -a; echo -e "\nRemount completed!"; mount | grep /mnt'
|
|
update: |
|
|
function update() {
|
|
PROG=$FUNCNAME
|
|
usage="Usage: $PROG [-y]
|
|
$PROG is used to run all the system's package manager commands
|
|
in one swoop. Flow stops if any command returns a failure code.
|
|
The hope is to run something as easy as 'pacman -Syyu'.
|
|
-y : Assume yes to any prompts."
|
|
|
|
unset OPTIND
|
|
while getopts ":hy" opt; do
|
|
case $opt in
|
|
h) echo -e "$usage"
|
|
return 0 ;;
|
|
y) accept="-y" ;;
|
|
*) echo "ERROR: -$OPTARG is not a recognized option."
|
|
echo -e "$usage"
|
|
return 1 ;;
|
|
esac
|
|
done
|
|
|
|
{{ update_package_manager }}
|
|
{{ update_flatpak }}
|
|
return 0
|
|
|
|
echo "ERROR: $PROG experienced a problem and has aborted."
|
|
return 1
|
|
}
|
|
sync: alias sync='date && echo "Syncing!" && sync && date'
|
|
editor: export EDITOR='vi'
|
|
init_aliases: |
|
|
alias init-video='mkdir -v raw; mkdir -v exports; cp ~/Templates/*video* ./'
|
|
alias init-vid=init-video
|
|
alias init-program='echo -e "#!/bin/bash\n# `date +%Y-%m-%d` by Hyperling\n# REASON\n\nexit 0\n"'
|
|
alias init-prog=init-program
|
|
bye: |
|
|
alias bye="{{ shutdown_command }}"
|
|
alias goodbye="update -y && bye"
|
|
|
|
- name: General | Account Management | Users | Files | Common Variable
|
|
set_fact:
|
|
rc_common: |
|
|
{{ path_additions }}
|
|
{{ alias_cp }}
|
|
{{ alias_mv }}
|
|
{{ alias_rm }}
|
|
{{ alias_clean }}
|
|
{{ alias_clean_trash }}
|
|
{{ function_wttr }}
|
|
{{ PS1 }}
|
|
{{ remount }}
|
|
{{ update }}
|
|
{{ sync }}
|
|
{{ editor }}
|
|
{{ init_aliases }}
|
|
{{ bye }}
|
|
|
|
- name: General | Account Management | Users | Files | .bashrc
|
|
blockinfile:
|
|
path: "{{ item }}/.bashrc"
|
|
block: |
|
|
{{ rc_common }}
|
|
[[ $(whoami) != "root" ]] && echo "`date` - Ansible .bashrc preferences loaded successfully!"
|
|
marker: '# {mark} MANAGED BY ANSIBLE | Aliases'
|
|
state: present
|
|
create: yes
|
|
backup: yes
|
|
loop:
|
|
- "{{ user_root.home }}"
|
|
- "{{ user_ling.home }}"
|
|
ignore_errors: yes
|
|
when: user_root.home != "" and user_ling.home != ""
|
|
|
|
- name: General | Account Management | Users | Files | .zshrc
|
|
blockinfile:
|
|
path: "{{ item }}/.zshrc"
|
|
block: |
|
|
{{ rc_common }}
|
|
[[ $(whoami) != "root" ]] && echo "`date` - Ansible .zshrc preferences loaded successfully!"
|
|
marker: '# {mark} MANAGED BY ANSIBLE | Aliases'
|
|
state: present
|
|
create: yes
|
|
backup: yes
|
|
loop:
|
|
- "{{ user_root.home }}"
|
|
- "{{ user_ling.home }}"
|
|
ignore_errors: yes
|
|
when: user_root.home != "" and user_ling.home != ""
|