dotfiles
dotfiles
intended use
This role is designed to manage linux hosts with the following roles. This role here basically only focuses on deploying some dotfiles, @DO1JLR decided they are needed at all hosts that are ansible managed. Other roles distribute ssh public keys, configure sshd, create users and manage sudo permissions or install a number of useful packages.
A list of suggested roles to manage your linux host:
- do1jlr.base install some useful packages
- do1jlr.users create user and manage sudoers
- do1jlr.auth deploy ssh pubkeys
- do1jlr.sshd configure sshd
- do1jlr.dotfiles (this one)
Good to know:
The listed roles use the same variables to create accounts, admins and so on. But the roles have to run in the correct order to work properly. For example you can't deploy a ssh public key for a user that is not created.
Get it directly from Ansible Galaxy
$ ansible-galaxy install do1jlr.dotfiles
Function of this role
Ansible role to deploy some dotfiles which may be useful
Affected files:
/etc/bash.bashrc
~/.bashrc
~/.vimrc
(and optionally some more, if enabled)
variables:
The variable accounts
is very important, because this will manage which user accounts will be configured.
# enable basic version check for this role
# set it to true to use it (recomended)
submodules_versioncheck: false
# for some ansible features we need the python selinux package at fedora
# disable it, if you don't want it
dotfiles__install_python_selinux: true
# modify bashrc
dotfiles__modify_bashrc: true
# list of aliases used in bashrc
dotfiles__aliases:
- { alias: "ls", command: "ls ", color: True }
- { alias: "grep", command: "grep", color: True }
- { alias: "ll", command: "ls -alF", color: False }
- { alias: "la", command: "ls -A", color: False }
- { alias: "l", command: "ls -CF", color: False }
- { alias: "lz", command: "ls -Z", color: False }
- { alias: "EDITOR", command: "/usr/bin/vim", color: False }
- { alias: "VISUAL", command: "/usr/bin/gedit", color: False }
- { alias: "gitsubpull", command: "git submodule foreach '(git checkout \\$(git symbolic-ref --short refs/remotes/origin/HEAD | sed 's@^origin/@@'); git pull)'", color: False }
- { alias: "pwgen", command: "/usr/bin/pwgen --num-passwords=3000 --numerals --capitalize --secure --no-vowels --ambiguous --symbols 95 1", color: false }
# enable bash completion
dotfiles__bash_completion_enabled: true
# fancy promt
dotfiles__user_prompt: '\[\033[01;33m\] $(printf "\xE2\x9D\xA4") \[\033[01;32m\]\u\[\033[01;36m\]@\[\033[01;32m\]\H\[\033[01;34m\] <\A> \[\033[01;35m\] \j \[\033[01;36m\] \w \[\033[01;33m\]\n\[\033[01;33m\] $(git branch 2>/dev/null | sed -n "s/* \(.*\)/\1 /p")$\[\033[01;00m\] '
dotfiles__root_prompt: '\[\033[01;31m\] $(printf "\xE2\x9D\xA4") \[\033[01;32m\]\u\[\033[01;36m\]@\[\033[01;32m\]\H\[\033[01;34m\] <\A> \[\033[01;35m\] \j \[\033[01;36m\] \w \[\033[01;33m\]\n\[\033[01;33m\] $(git branch 2>/dev/null | sed -n "s/* \(.*\)/\1 /p")$\[\033[01;00m\] '
# modify bash history
dotfiles__history_control: 'ignoreboth'
dotfiles__history_size: '-1'
dotfiles__history_file_size: '-1'
# optional additional entries to /etc/bash.bashrc
dotfiles__additional_bashrc_lines: []
# - eval `foo`
# - tmux new-session
# optional additional entries to ~/.bashrc
dotfiles__additional_user_bashrc_lines: []
# - eval $(keychain --eval --quiet id_ed25519)
# optionally allow custom bashrc for root
dotfiles__allow_own_root_bashrc: false
# otional custom commands
Please have a look into defaults/main.yml
for more configuration options!
testing
If you want to find out more about our tests, please have a look at the github marketplace.
Deploy some dotfiles like .vimrc and .bashrc for all defined users
ansible-galaxy install roles-ansible/ansible_role_dotfiles