ansible
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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}}'
|
||||
|
||||
Reference in New Issue
Block a user