This commit is contained in:
aynic.os
2021-06-16 12:19:52 +01:00
parent f0c10a3082
commit ce449b3966
80 changed files with 828 additions and 448 deletions
+3 -4
View File
@@ -7,10 +7,9 @@
when: hosts_enable_cloudinit|default(false) and ansible_os_family|lower != "alpine"
- name: cloudinit - install cloud-init packages
apk: name="{{item.name}}" state="{{item.state}}"
apk:
name: cloud-init
state: present
name: "{{ item.name}}"
state: "{{ item.state }}"
repository:
- http://dl-cdn.alpinelinux.org/alpine/edge/main
- http://dl-cdn.alpinelinux.org/alpine/edge/testing
@@ -25,7 +24,7 @@
- name: cloudinit - update /etc/cloud/cloud.cfg
template:
src: etc/cloud/cloud.cfg.j2
src: cloud.cfg.j2
dest: /etc/cloud/cloud.cfg
force: yes
when: hosts_enable_cloudinit|default(false)
+15
View File
@@ -0,0 +1,15 @@
---
# file: tasks/dir.yml
- name: dir - create directories
with_items:
- ~/.config
- ~/.config/git
- ~/.ssh
- ~/.ssh/myos
- ~/.tmux
- ~/.tmux/myos
file:
path: "{{item}}"
state: directory
+1
View File
@@ -8,3 +8,4 @@
dest: "{{ item.dest|default('/src') }}"
key_file: "{{ item.key_file|default('~/.ssh/id_rsa') }}"
version: "{{ item.version|default('HEAD') }}"
become: yes
+8 -5
View File
@@ -10,21 +10,24 @@
- import_tasks: cloudinit.yml
tags:
- cloudinit
- import_tasks: packages.yml
- import_tasks: dir.yml
tags:
- packages
- import_tasks: ssh.yml
tags:
- ssh
- dir
- import_tasks: files.yml
tags:
- files
- import_tasks: git.yml
tags:
- git
- import_tasks: packages.yml
tags:
- packages
- import_tasks: service.yml
tags:
- service
- import_tasks: ssh.yml
tags:
- ssh
- import_tasks: user.yml
tags:
- user
+32 -23
View File
@@ -1,24 +1,30 @@
---
# file: tasks/ssh.yml
- name: ssh - add keys to file ~/.ssh/authorized_keys
authorized_key: user="root" key=https://github.com/{{item}}.keys
with_items: "{{hosts_ssh_users|default([])}}"
become: yes
- name: ssh - add ssh_authorized_keys to file ~/.ssh/authorized_keys
authorized_key: user="{{ ansible_user|default('root') }}" key="{{ item }}"
with_items: "{{ hosts_ssh_authorized_keys|default([]) }}"
ignore_errors: true
- name: ssh - copy ssh private keys
with_items: "{{hosts_ssh_private_keys|default([])}}"
copy: src={{item}} dest=~/.ssh/ mode=0400
become: yes
- name: ssh - add public hosts keys to known_hosts
with_items: "{{hosts_ssh_public_hosts_keys|default([])}}"
- name: ssh - add ssh_public_hosts keys to known_hosts
with_items: "{{ hosts_ssh_public_hosts|default([]) }}"
known_hosts:
name: "{{item.name}}"
key: "{{ lookup('file', '{{item.key}}') }}"
become: yes
name: "{{ item }}"
key: "{{ lookup('pipe', 'ssh-keyscan -t rsa -H ' + item) }}"
ignore_errors: true
- name: ssh - define configuration
- name: ssh - copy ssh_private_keys to ~/.ssh/
with_items: "{{ hosts_ssh_private_keys|default([]) }}"
copy: src="{{ item }}" dest=~/.ssh/ mode=0400
ignore_errors: true
- name: ssh - update ~/.ssh/myos/config
template:
src: ssh_config.j2
dest: ~/.ssh/myos/config
mode: 0400
- name: ssh - define sshd configuration
set_fact:
sshd_config:
- dest: /etc/conf.d/dropbear
@@ -27,22 +33,25 @@
- dest: /etc/ssh/sshd_config
line: Banner /etc/issue.net
regex: ^#?Banner
- dest: /etc/ssh/sshd_config
line: PermitRootLogin prohibit-password
regex: ^#?PermitRootLogin
- name: ssh - stat configuration file
- name: ssh - stat sshd configuration file
changed_when: false
register: sshd_config_stat
stat:
path: '{{item.dest}}'
with_items: '{{sshd_config|default([])}}'
path: "{{ item.dest }}"
with_items: "{{ sshd_config|default([]) }}"
- name: ssh - configure sshd
become: yes
lineinfile:
backrefs: true
dest: '{{item.0.dest}}'
line: '{{item.0.line}}'
regex: '{{item.0.regex}}'
dest: "{{ item.0.dest }}"
line: "{{ item.0.line }}"
regex: "{{ item.0.regex }}"
with_together:
- '{{sshd_config|default([])}}'
- '{{sshd_config_stat.results}}'
- "{{ sshd_config|default([]) }}"
- "{{ sshd_config_stat.results }}"
when: item.1.stat.exists
+49 -18
View File
@@ -3,7 +3,7 @@
- name: user - create ~/.env
template:
src: .env.j2
src: env.j2
dest: ~/.env
force: no
mode: 0400
@@ -11,40 +11,49 @@
- name: user - create ~/.rc.d
file: path=~/.rc.d/ state={{hosts_enable_rc|default(false)|ternary('directory', 'absent')}} mode="0700"
- name: user - activate rc functions
- name: user - source /etc/profile.d/rc_functions.sh
with_items:
- /etc/profile.d/rc_functions.sh
lineinfile: dest=~/.rc.d/00_source create=yes line="{{ item }}" mode="0600"
when: hosts_enable_rc|default(false)
- name: user - enable rc functions
with_items: "{{hosts_rc_functions|default([])}}"
file: path="~/.rc.d/{{item}}" state="touch" mode="0600"
when: hosts_enable_rc|default(false)
- name: user - disable rc functions
with_items: "{{hosts_rc_cleanup|default([])}}"
file: path="~/.rc.d/{{item}}" state="absent" mode="0600"
file: path="~/.rc.d/{{item}}" state="absent"
when: hosts_enable_rc|default(false)
- name: user - create directories
- name: user - copy ~/.*aliases ~/.*functions ~/.*profile ~/.shrc
with_items:
- ~/.config
- ~/.config/git
file:
path: "{{item}}"
state: directory
- ".dircolors_aliases"
- ".docker_aliases"
- ".resty_aliases"
- ".vim_aliases"
- ".sh_functions"
- ".bash_profile"
- ".profile"
- ".shrc"
copy: src=../files/{{item}} dest=~/{{item}} mode="0640" backup="yes"
- name: user - update ~/.bashrc
with_items:
- PS1="╭∩╮$PS1"
- unset user_count process_count
lineinfile: dest=~/.bashrc create=yes line='{{item}}'
- name: user - update ~/.config/git/ignore
with_items:
- '.nfs*'
- '*~'
- '*.log'
- '*.pyc'
- '*.swp'
lineinfile: dest=~/.config/git/ignore create=yes line='{{item}}'
- name: user - update ~/.profile
with_items:
- alias ctop='docker run --rm -ti --volume /var/run/docker.sock:/var/run/docker.sock:ro quay.io/vektorlab/ctop:latest'
- alias vi='vim'
- export EDITOR='vim'
- export PAGER='less'
lineinfile: dest=~/.profile create=yes line='{{item}}'
- name: user - update ~/.screenrc
with_items:
- defscrollback 1024
@@ -52,9 +61,31 @@
- shell -$SHELL
lineinfile: dest=~/.screenrc create=yes line='{{item}}'
- name: user - update ~/.ssh/config
with_items:
- include myos/config
lineinfile: dest=~/.ssh/config create=yes line='{{item}}'
- name: user - update ~/.tmux.conf
with_items:
- source-file ~/.tmux/myos/config
lineinfile: dest=~/.tmux.conf create=yes line='{{item}}'
- name: user - update ~/.tmux/myos/config
template:
src: tmux_config.j2
dest: ~/.tmux/myos/config
mode: 0400
- name: user - update ~/.tmux/myos/session
template:
src: tmux_session.j2
dest: ~/.tmux/myos/session
mode: 0400
- name: user - update ~/.vimrc
with_items:
- :set et ai bg=dark sw=4 ts=4 encoding=utf-8 mouse=""
- :set et ai bg=dark sw=2 ts=2 encoding=utf-8 mouse=""
- :syn on
- :filetype plugin indent on
lineinfile: dest=~/.vimrc create=yes line='{{item}}'