mirror of
https://github.com/eoli3n/dotfiles
synced 2024-11-22 15:01:59 +01:00
switch from powerline to airline, from localhost to multiple hosts
This commit is contained in:
parent
5d00b616c4
commit
2f56fe787c
55
README.md
55
README.md
@ -39,7 +39,7 @@ Please check ``vagrant/*/README.md`` and ``docker/*/README.md``
|
|||||||
|
|
||||||
## Desktop/Laptop Environment
|
## Desktop/Laptop Environment
|
||||||
|
|
||||||
Don't run as ``root``.
|
Don't use as ``root``.
|
||||||
|
|
||||||
### Supported OS
|
### Supported OS
|
||||||
|
|
||||||
@ -83,8 +83,31 @@ Ansible will backup any existing conf file before erasing it (.zshrc, .i3/config
|
|||||||
```
|
```
|
||||||
git clone --recursive https://github.com/eoli3n/dotfiles
|
git clone --recursive https://github.com/eoli3n/dotfiles
|
||||||
cd dotfiles
|
cd dotfiles
|
||||||
# To list tasks, dryrun then install
|
|
||||||
./install.sh <desktop|laptop|[any package tag]>
|
# edit hosts, then add your hostnames in right section <server|desktop|laptop>
|
||||||
|
# test connectivity
|
||||||
|
ansible all -m ping
|
||||||
|
|
||||||
|
# To list tasks and tags
|
||||||
|
ansible-playbook install.yml --list-tasks
|
||||||
|
|
||||||
|
# To dry-run and print files diff on all declared hosts
|
||||||
|
ansible-playbook install.yml -CDK
|
||||||
|
|
||||||
|
# To run the whole playbook for all hosts
|
||||||
|
ansible-playbook install.yml -K
|
||||||
|
|
||||||
|
# To install 1 tag on 1 host
|
||||||
|
ansible-playbook install.yml -K -l <hostname> -t <tag>
|
||||||
|
|
||||||
|
# To run only locally, add your hostname in right hosts file section
|
||||||
|
# you can replace server with <desktop|laptop>
|
||||||
|
echo << EOF > hosts
|
||||||
|
[server]
|
||||||
|
localhost ansible_connection=local
|
||||||
|
EOF
|
||||||
|
# then
|
||||||
|
ansible-playbook install.yml
|
||||||
```
|
```
|
||||||
|
|
||||||
### Manual configurations
|
### Manual configurations
|
||||||
@ -126,9 +149,31 @@ To use dark theme, go to graphical configuration and click ``Use GTK+ Theme``
|
|||||||
```
|
```
|
||||||
git clone --recursive https://github.com/eoli3n/dotfiles
|
git clone --recursive https://github.com/eoli3n/dotfiles
|
||||||
cd dotfiles
|
cd dotfiles
|
||||||
# To list tasks, dryrun then install
|
|
||||||
./install.sh <server|[any package tag]>
|
|
||||||
|
|
||||||
|
# edit hosts, then add your hostnames in right section <server|desktop|laptop>
|
||||||
|
# test connectivity
|
||||||
|
ansible all -m ping
|
||||||
|
|
||||||
|
# To list tasks and tags
|
||||||
|
ansible-playbook install.yml --list-tasks
|
||||||
|
|
||||||
|
# To dry-run and print files diff on all declared hosts
|
||||||
|
ansible-playbook install.yml -CDK
|
||||||
|
|
||||||
|
# To run the whole playbook for all hosts
|
||||||
|
ansible-playbook install.yml -K
|
||||||
|
|
||||||
|
# To install 1 tag on 1 host
|
||||||
|
ansible-playbook install.yml -K -l <hostname> -t <tag>
|
||||||
|
|
||||||
|
# To run only locally, add your hostname in right hosts file section
|
||||||
|
# you can replace server with <desktop|laptop>
|
||||||
|
echo << EOF > hosts
|
||||||
|
[server]
|
||||||
|
localhost ansible_connection=local
|
||||||
|
EOF
|
||||||
|
# then
|
||||||
|
ansible-playbook install.yml
|
||||||
```
|
```
|
||||||
|
|
||||||
# Previously
|
# Previously
|
||||||
|
2
TODO
2
TODO
@ -3,7 +3,6 @@
|
|||||||
- borgbackup: install and configure role
|
- borgbackup: install and configure role
|
||||||
- tmux: install and configure role
|
- tmux: install and configure role
|
||||||
- playbook: change includes in import tasks to be able to resolv with list-tasks
|
- playbook: change includes in import tasks to be able to resolv with list-tasks
|
||||||
- powerline: check best install method all distrib
|
|
||||||
- zsh: check neon specific alias and others
|
- zsh: check neon specific alias and others
|
||||||
- playbook: update all vagrant specific task to match docker hosts
|
- playbook: update all vagrant specific task to match docker hosts
|
||||||
- playbook: test if tag limit exists
|
- playbook: test if tag limit exists
|
||||||
@ -12,7 +11,6 @@
|
|||||||
# TOFIX
|
# TOFIX
|
||||||
|
|
||||||
- vagrant: chsh in vagrant config file for FreeBSD
|
- vagrant: chsh in vagrant config file for FreeBSD
|
||||||
- powerline: not working with centos|debian|freebsd
|
|
||||||
- playbook: add {{ tag }} to fail module to print in "limit to distrib" task
|
- playbook: add {{ tag }} to fail module to print in "limit to distrib" task
|
||||||
- vagrant: tty in qwerty for debian keyboard
|
- vagrant: tty in qwerty for debian keyboard
|
||||||
- playbook: {{playbook_dir}} -> {{role_path}}
|
- playbook: {{playbook_dir}} -> {{role_path}}
|
||||||
|
@ -44,6 +44,7 @@ RUN cd /tmp; curl -o PKGBUILD https://aur.archlinux.org/cgit/aur.git/plain/PKGBU
|
|||||||
RUN cd /tmp; makepkg PKGBUILD --install --needed --noconfirm
|
RUN cd /tmp; makepkg PKGBUILD --install --needed --noconfirm
|
||||||
RUN mkdir dotfiles
|
RUN mkdir dotfiles
|
||||||
COPY . dotfiles/
|
COPY . dotfiles/
|
||||||
RUN cd dotfiles; ./install.sh desktop | tee ansible.log
|
RUN cd dotfiles; echo "[desktop]\nlocalhost ansible_connection=local" > hosts
|
||||||
|
RUN cd dotfiles; ansible-playbook install.yml | tee ansible.log
|
||||||
RUN echo -e "test" | chsh -s '/usr/bin/zsh'
|
RUN echo -e "test" | chsh -s '/usr/bin/zsh'
|
||||||
ENTRYPOINT /usr/bin/zsh
|
ENTRYPOINT /usr/bin/zsh
|
||||||
|
@ -33,6 +33,7 @@ WORKDIR /home/test/
|
|||||||
ENV LANG="fr_FR.UTF-8"
|
ENV LANG="fr_FR.UTF-8"
|
||||||
RUN mkdir dotfiles
|
RUN mkdir dotfiles
|
||||||
COPY . dotfiles/
|
COPY . dotfiles/
|
||||||
RUN cd dotfiles; ./install.sh server | tee ansible.log
|
RUN cd dotfiles; echo "[server]\nlocalhost ansible_connection=local" > hosts
|
||||||
|
RUN cd dotfiles; ansible-playbook install.yml | tee ansible.log
|
||||||
RUN echo -e "dockerpass" | chsh -s /bin/zsh
|
RUN echo -e "dockerpass" | chsh -s /bin/zsh
|
||||||
ENTRYPOINT /usr/bin/zsh
|
ENTRYPOINT /usr/bin/zsh
|
||||||
|
@ -34,6 +34,7 @@ WORKDIR /home/test/
|
|||||||
ENV LANG="fr_FR.UTF-8"
|
ENV LANG="fr_FR.UTF-8"
|
||||||
RUN mkdir dotfiles
|
RUN mkdir dotfiles
|
||||||
COPY . dotfiles/
|
COPY . dotfiles/
|
||||||
RUN cd dotfiles; ./install.sh server | tee ansible.log
|
RUN cd dotfiles; echo "[server]\nlocalhost ansible_connection=local" > hosts
|
||||||
|
RUN cd dotfiles; ansible-playbook install.yml | tee ansible.log
|
||||||
RUN sudo chsh -s '/usr/bin/zsh' test
|
RUN sudo chsh -s '/usr/bin/zsh' test
|
||||||
ENTRYPOINT /usr/bin/zsh
|
ENTRYPOINT /usr/bin/zsh
|
||||||
|
7
hosts
Normal file
7
hosts
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
[server]
|
||||||
|
cesium ansible_user=root
|
||||||
|
neon ansible_user=root
|
||||||
|
|
||||||
|
[laptop]
|
||||||
|
osz ansible_user=user
|
||||||
|
work ansible_user=userarch
|
36
install.sh
36
install.sh
@ -1,36 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
cd "$( dirname "${BASH_SOURCE[0]}" )"
|
|
||||||
|
|
||||||
command -v ansible-playbook >/dev/null 2>&1 || { echo >&2 "I require ansible but it's not installed. Aborting."; exit 1; }
|
|
||||||
|
|
||||||
if [[ -z ${1+x} ]]
|
|
||||||
then
|
|
||||||
echo "Please choose a tag to install as param:"
|
|
||||||
ansible-playbook -i "localhost," -c local install.yml --list-tags
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "### LIST TASKS #################################################################"
|
|
||||||
|
|
||||||
ansible-playbook -i "localhost," -c local install.yml --list-tasks -t $1 | grep TAGS | egrep -v 'play|debug|include_role' | sed 's/\ *\(.*\)TAGS.*$/\1/'
|
|
||||||
|
|
||||||
echo "Do you want to dryrun ? (y/N)"
|
|
||||||
read ok
|
|
||||||
ok=${ok:-N}
|
|
||||||
|
|
||||||
if [[ "$ok" == "y" ]]
|
|
||||||
then
|
|
||||||
echo "### DRYRUN ###################################################################"
|
|
||||||
ansible-playbook -i "localhost," -c local install.yml --ask-become-pass -CD -t $1 || exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "Do you want to install ? (Y/n)"
|
|
||||||
read ok
|
|
||||||
ok=${ok:-Y}
|
|
||||||
|
|
||||||
if [[ "$ok" == "Y" ]]
|
|
||||||
then
|
|
||||||
echo "### RUN ####################################################################"
|
|
||||||
ansible-playbook -i "localhost," -c local install.yml --ask-become-pass -t $1 || exit 1
|
|
||||||
fi
|
|
25
install.yml
25
install.yml
@ -1,7 +1,6 @@
|
|||||||
---
|
---
|
||||||
- hosts: all
|
- hosts: server
|
||||||
tags: server
|
tags: limit
|
||||||
|
|
||||||
tasks:
|
tasks:
|
||||||
- name: Limit to Archlinux/Debian/Centos/FreeBSD
|
- name: Limit to Archlinux/Debian/Centos/FreeBSD
|
||||||
fail:
|
fail:
|
||||||
@ -11,23 +10,20 @@
|
|||||||
(ansible_distribution != "Archlinux") and
|
(ansible_distribution != "Archlinux") and
|
||||||
(ansible_distribution != "FreeBSD")
|
(ansible_distribution != "FreeBSD")
|
||||||
|
|
||||||
- hosts: all
|
- hosts: desktop:laptop
|
||||||
tags: [ 'desktop', 'laptop' ]
|
tags: limit
|
||||||
|
|
||||||
tasks:
|
tasks:
|
||||||
- name: Limit to Archlinux
|
- name: Limit to Archlinux
|
||||||
fail:
|
fail:
|
||||||
msg: "{{ ansible_distribution }} is not supported with this tag."
|
msg: "{{ ansible_distribution }} is not supported with this tag."
|
||||||
when: ansible_distribution != "Archlinux"
|
when: ansible_distribution != "Archlinux"
|
||||||
|
|
||||||
- name: Limit to user account
|
- name: Limit to user accounts
|
||||||
fail:
|
fail:
|
||||||
msg: "Don't run as root."
|
msg: "Don't run as root."
|
||||||
when: ansible_user_id == "root"
|
when: ansible_user_id == "root"
|
||||||
|
|
||||||
- hosts: all
|
- hosts: server:desktop:laptop
|
||||||
tags: [ 'server', 'laptop', 'desktop' ]
|
|
||||||
|
|
||||||
roles:
|
roles:
|
||||||
- { role: packages-common, tags: packages-common }
|
- { role: packages-common, tags: packages-common }
|
||||||
- { role: zsh, tags: zsh }
|
- { role: zsh, tags: zsh }
|
||||||
@ -36,9 +32,7 @@
|
|||||||
- { role: screen, tags: screen }
|
- { role: screen, tags: screen }
|
||||||
- { role: authorized_keys, tags: authorized_keys }
|
- { role: authorized_keys, tags: authorized_keys }
|
||||||
|
|
||||||
- hosts: all
|
- hosts: desktop:laptop
|
||||||
tags: [ 'desktop', 'laptop' ]
|
|
||||||
|
|
||||||
roles:
|
roles:
|
||||||
- { role: packages-desktop, tags: packages-desktop }
|
- { role: packages-desktop, tags: packages-desktop }
|
||||||
- { role: cursor, tags: cursor }
|
- { role: cursor, tags: cursor }
|
||||||
@ -51,16 +45,13 @@
|
|||||||
- { role: termite, tags: termite }
|
- { role: termite, tags: termite }
|
||||||
- { role: weechat, tags: weechat }
|
- { role: weechat, tags: weechat }
|
||||||
- { role: ssh-agent, tags: ssh-agent }
|
- { role: ssh-agent, tags: ssh-agent }
|
||||||
|
|
||||||
tasks:
|
tasks:
|
||||||
- include_role:
|
- include_role:
|
||||||
name: vagrant
|
name: vagrant
|
||||||
when: ansible_user_id == "vagrant"
|
when: ansible_user_id == "vagrant"
|
||||||
tags: vagrant
|
tags: vagrant
|
||||||
|
|
||||||
- hosts: all
|
- hosts: laptop
|
||||||
tags: laptop
|
|
||||||
|
|
||||||
roles:
|
roles:
|
||||||
- { role: packages-laptop, tags: packages-laptop }
|
- { role: packages-laptop, tags: packages-laptop }
|
||||||
- { role: xbindkeys, tags: xbindkeys }
|
- { role: xbindkeys, tags: xbindkeys }
|
||||||
|
@ -5,29 +5,6 @@
|
|||||||
- vim
|
- vim
|
||||||
become: True
|
become: True
|
||||||
|
|
||||||
- name : Install powerline [Centos]
|
|
||||||
pip: name={{item}} state=present
|
|
||||||
with_items:
|
|
||||||
- powerline-status
|
|
||||||
become: True
|
|
||||||
when: ansible_distribution == "CentOS"
|
|
||||||
|
|
||||||
- name : Install powerline [Archlinux]
|
|
||||||
pacman: name={{item}} state=present
|
|
||||||
with_items:
|
|
||||||
- powerline2
|
|
||||||
- powerline-vim
|
|
||||||
- powerline-fonts
|
|
||||||
become: True
|
|
||||||
when: ansible_os_family == "Archlinux"
|
|
||||||
|
|
||||||
- name : Install powerline [FreeBSD]
|
|
||||||
package: name={{item}} state=present
|
|
||||||
with_items:
|
|
||||||
- py27-powerline-status
|
|
||||||
become: True
|
|
||||||
when: ansible_os_family == "FreeBSD"
|
|
||||||
|
|
||||||
- name: Create .vim dirs
|
- name: Create .vim dirs
|
||||||
file: path={{item}} state=directory
|
file: path={{item}} state=directory
|
||||||
with_items:
|
with_items:
|
||||||
@ -35,6 +12,16 @@
|
|||||||
- ~/.vim/bundle
|
- ~/.vim/bundle
|
||||||
- ~/.vim/autoload
|
- ~/.vim/autoload
|
||||||
|
|
||||||
|
- name: Clone airline
|
||||||
|
git:
|
||||||
|
repo: https://github.com/vim-airline/vim-airline
|
||||||
|
dest: ~/.vim/bundle/vim-airline
|
||||||
|
|
||||||
|
- name: Clone airline-themes
|
||||||
|
git:
|
||||||
|
repo: https://github.com/vim-airline/vim-airline-themes
|
||||||
|
dest: ~/.vim/bundle/vim-airline-thmes
|
||||||
|
|
||||||
- name: Configure vim
|
- name: Configure vim
|
||||||
template: src=templates/vimrc dest=~/.vimrc backup=yes
|
template: src=templates/vimrc dest=~/.vimrc backup=yes
|
||||||
|
|
||||||
|
@ -20,10 +20,12 @@ autocmd VimEnter,Colorscheme * :hi MatchParen cterm=none ctermbg=white ctermfg=b
|
|||||||
" remember last cursor place
|
" remember last cursor place
|
||||||
au BufReadPost * if line("'\"") > 0|if line("'\"") <= line("$")|exe("norm '\"")|else|exe "norm $"|endif|endif
|
au BufReadPost * if line("'\"") > 0|if line("'\"") <= line("$")|exe("norm '\"")|else|exe "norm $"|endif|endif
|
||||||
|
|
||||||
" powerline
|
" airline
|
||||||
set laststatus=2
|
let g:airline_powerline_fonts = 1
|
||||||
set t_Co=256
|
if !exists('g:airline_symbols')
|
||||||
let g:powerline_pycmd="py3"
|
let g:airline_symbols = {}
|
||||||
{% if ansible_os_family == "FreeBSD" %}
|
endif
|
||||||
set rtp+=/usr/local/lib/python2.7/site-packages/powerline/bindings/vim/
|
let g:airline_symbols.space = "\ua0"
|
||||||
{% endif %}
|
"let g:airline#extensions#tabline#enabled = 1
|
||||||
|
"let g:airline#extensions#tabline#show_buffers = 0
|
||||||
|
let g:airline_theme = 'minimalist'
|
||||||
|
@ -45,6 +45,7 @@
|
|||||||
- zsh-syntax-highlighting
|
- zsh-syntax-highlighting
|
||||||
become: True
|
become: True
|
||||||
when: ansible_distribution == "Debian"
|
when: ansible_distribution == "Debian"
|
||||||
|
ignore_errors: True
|
||||||
|
|
||||||
- name: Configure zsh-syntax-highlighting repo [CentOS]
|
- name: Configure zsh-syntax-highlighting repo [CentOS]
|
||||||
shell: creates=/etc/yum.repos.d/shells:zsh-users:zsh-syntax-highlighting.repo cd /etc/yum.repos.d/; wget https://download.opensuse.org/repositories/shells:zsh-users:zsh-syntax-highlighting/CentOS_7/shells:zsh-users:zsh-syntax-highlighting.repo
|
shell: creates=/etc/yum.repos.d/shells:zsh-users:zsh-syntax-highlighting.repo cd /etc/yum.repos.d/; wget https://download.opensuse.org/repositories/shells:zsh-users:zsh-syntax-highlighting/CentOS_7/shells:zsh-users:zsh-syntax-highlighting.repo
|
||||||
@ -59,6 +60,7 @@
|
|||||||
- zsh-syntax-highlighting
|
- zsh-syntax-highlighting
|
||||||
become: True
|
become: True
|
||||||
when: ansible_distribution != "Debian"
|
when: ansible_distribution != "Debian"
|
||||||
|
ignore_errors: True
|
||||||
|
|
||||||
- name: Install oh-my-zsh
|
- name: Install oh-my-zsh
|
||||||
shell: creates=~/.oh-my-zsh sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh) ||:"
|
shell: creates=~/.oh-my-zsh sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh) ||:"
|
||||||
|
3
vagrant/archlinux/Vagrantfile
vendored
3
vagrant/archlinux/Vagrantfile
vendored
@ -50,7 +50,8 @@ Vagrant.configure("2") do |config|
|
|||||||
cd /tmp
|
cd /tmp
|
||||||
curl -o PKGBUILD https://aur.archlinux.org/cgit/aur.git/plain/PKGBUILD?h=packer-git; makepkg PKGBUILD --install --needed --noconfirm
|
curl -o PKGBUILD https://aur.archlinux.org/cgit/aur.git/plain/PKGBUILD?h=packer-git; makepkg PKGBUILD --install --needed --noconfirm
|
||||||
cd $HOME/dotfiles
|
cd $HOME/dotfiles
|
||||||
./install.sh desktop && echo -e "vagrant\n/usr/bin/zsh" | chsh
|
echo "[desktop]\nlocalhost ansible_connection=local" > hosts
|
||||||
|
ansible-playbook install.yml && echo -e "vagrant\n/usr/bin/zsh" | chsh
|
||||||
SCRIPT
|
SCRIPT
|
||||||
|
|
||||||
config.vm.provision "shell", inline: $script, privileged: false
|
config.vm.provision "shell", inline: $script, privileged: false
|
||||||
|
3
vagrant/centos/Vagrantfile
vendored
3
vagrant/centos/Vagrantfile
vendored
@ -39,7 +39,8 @@ Vagrant.configure("2") do |config|
|
|||||||
touch ~/.vimrc; rm ~/.vimrc
|
touch ~/.vimrc; rm ~/.vimrc
|
||||||
# EXEC
|
# EXEC
|
||||||
cd $HOME/dotfiles
|
cd $HOME/dotfiles
|
||||||
./install.sh server && echo -e "vagrant" | chsh -s /bin/zsh
|
echo "[server]\nlocalhost ansible_connection=local" > hosts
|
||||||
|
ansible-playbook install.yml && echo -e "vagrant" | chsh -s /bin/zsh
|
||||||
SCRIPT
|
SCRIPT
|
||||||
|
|
||||||
config.vm.provision "shell", inline: $script, privileged: false
|
config.vm.provision "shell", inline: $script, privileged: false
|
||||||
|
3
vagrant/debian/Vagrantfile
vendored
3
vagrant/debian/Vagrantfile
vendored
@ -40,7 +40,8 @@ Vagrant.configure("2") do |config|
|
|||||||
touch ~/.vimrc; rm ~/.vimrc
|
touch ~/.vimrc; rm ~/.vimrc
|
||||||
# EXEC
|
# EXEC
|
||||||
cd $HOME/dotfiles
|
cd $HOME/dotfiles
|
||||||
./install.sh server && echo -e "vagrant\n/usr/bin/zsh" | chsh
|
echo "[server]\nlocalhost ansible_connection=local" > hosts
|
||||||
|
ansible-playbook install.yml && echo -e "vagrant\n/usr/bin/zsh" | chsh
|
||||||
SCRIPT
|
SCRIPT
|
||||||
|
|
||||||
config.vm.provision "shell", inline: $script, privileged: false
|
config.vm.provision "shell", inline: $script, privileged: false
|
||||||
|
3
vagrant/freebsd/Vagrantfile
vendored
3
vagrant/freebsd/Vagrantfile
vendored
@ -28,7 +28,8 @@ Vagrant.configure("2") do |config|
|
|||||||
touch ~/.vimrc; rm ~/.vimrc
|
touch ~/.vimrc; rm ~/.vimrc
|
||||||
# EXEC
|
# EXEC
|
||||||
cd $HOME/dotfiles
|
cd $HOME/dotfiles
|
||||||
./install.sh server
|
echo "[server]\nlocalhost ansible_connection=local" > hosts
|
||||||
|
ansible-playbook install.yml
|
||||||
#CHANGE SH LINE : chsh -s /usr/local/bin/zsh -p ?? how to use crypt
|
#CHANGE SH LINE : chsh -s /usr/local/bin/zsh -p ?? how to use crypt
|
||||||
SCRIPT
|
SCRIPT
|
||||||
config.vm.provision "shell", inline: $script, privileged: false
|
config.vm.provision "shell", inline: $script, privileged: false
|
||||||
|
Loading…
Reference in New Issue
Block a user