first commit
This commit is contained in:
parent
d836b3ef05
commit
5aa84d6115
122
playbook.yml
Normal file
122
playbook.yml
Normal file
@ -0,0 +1,122 @@
|
|||||||
|
#################################################
|
||||||
|
# DO Community Playbooks: Initial Server Setup
|
||||||
|
#################################################
|
||||||
|
---
|
||||||
|
- hosts: all
|
||||||
|
become: true
|
||||||
|
vars_files:
|
||||||
|
- vars/default.yml
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
# - name: Install Prerequisites
|
||||||
|
# apt: name=aptitude update_cache=yes state=latest force_apt_get=yes
|
||||||
|
|
||||||
|
#Sudo Group Setup
|
||||||
|
- name: Make sure we have a 'wheel' group
|
||||||
|
group:
|
||||||
|
name: "{{ create_user }}"
|
||||||
|
state: present
|
||||||
|
|
||||||
|
# - name: Allow 'wheel' group to have passwordless sudo
|
||||||
|
# lineinfile:
|
||||||
|
# path: /etc/sudoers
|
||||||
|
# state: present
|
||||||
|
# regexp: '^%wheel'
|
||||||
|
# line: '%wheel ALL=(ALL) NOPASSWD: ALL'
|
||||||
|
# validate: '/usr/sbin/visudo -cf %s'
|
||||||
|
|
||||||
|
# User + Key Setup
|
||||||
|
- name: Create a new regular user with sudo privileges
|
||||||
|
user:
|
||||||
|
name: "{{ create_user }}"
|
||||||
|
state: present
|
||||||
|
groups: "{{ create_user }}"
|
||||||
|
append: true
|
||||||
|
create_home: true
|
||||||
|
shell: /bin/bash
|
||||||
|
|
||||||
|
- name: Set authorized key for remote user
|
||||||
|
authorized_key:
|
||||||
|
user: "{{ create_user }}"
|
||||||
|
state: present
|
||||||
|
key: "{{ copy_local_key }}"
|
||||||
|
|
||||||
|
# - name: Disable password authentication for root
|
||||||
|
# lineinfile:
|
||||||
|
# path: /etc/ssh/sshd_config
|
||||||
|
# state: present
|
||||||
|
# regexp: '^#?PermitRootLogin'
|
||||||
|
# line: 'PermitRootLogin prohibit-password'
|
||||||
|
|
||||||
|
# Install Packages
|
||||||
|
- name: Update apt
|
||||||
|
apt: update_cache=yes
|
||||||
|
|
||||||
|
# - name: Install required system packages
|
||||||
|
# apt: name={{ sys_packages }} state=latest
|
||||||
|
|
||||||
|
# - name: Upgrade installed apt packages
|
||||||
|
# apt:
|
||||||
|
# upgrade: dist
|
||||||
|
# register: upgrade
|
||||||
|
# retries: 15
|
||||||
|
# delay: 5
|
||||||
|
# until: upgrade is success
|
||||||
|
|
||||||
|
|
||||||
|
- name: Ensure that these software packages are installed
|
||||||
|
apt:
|
||||||
|
pkg:
|
||||||
|
- build-essential
|
||||||
|
# - fail2ban
|
||||||
|
# - needrestart
|
||||||
|
# - pwgen
|
||||||
|
# - resolvconf
|
||||||
|
# - unbound
|
||||||
|
- unzip
|
||||||
|
state: latest
|
||||||
|
|
||||||
|
- name: Set ssh '{{ ssh_port }}' port number
|
||||||
|
lineinfile:
|
||||||
|
dest: /etc/ssh/sshd_config
|
||||||
|
regexp: 'Port '
|
||||||
|
line: 'Port {{ ssh_port }}'
|
||||||
|
state: present
|
||||||
|
notify:
|
||||||
|
- restart sshd
|
||||||
|
|
||||||
|
|
||||||
|
- name: Allow ssh port '{{ ssh_port }}'.
|
||||||
|
ufw:
|
||||||
|
rule: allow
|
||||||
|
proto: tcp
|
||||||
|
port: '{{ ssh_port }}'
|
||||||
|
state: enabled
|
||||||
|
|
||||||
|
|
||||||
|
- name: set timezone
|
||||||
|
timezone:
|
||||||
|
name: "{{ tmzone }}"
|
||||||
|
|
||||||
|
# UFW Setup
|
||||||
|
- name: UFW - Allow SSH connections
|
||||||
|
ufw:
|
||||||
|
rule: allow
|
||||||
|
name: OpenSSH
|
||||||
|
|
||||||
|
- name: UFW - Deny all other incoming traffic by default
|
||||||
|
ufw:
|
||||||
|
state: enabled
|
||||||
|
policy: deny
|
||||||
|
direction: incoming
|
||||||
|
|
||||||
|
|
||||||
|
handlers:
|
||||||
|
- name: restart sshd
|
||||||
|
service:
|
||||||
|
name: sshd
|
||||||
|
state: restarted
|
||||||
|
debug:
|
||||||
|
msg: "Restarting sshd"
|
||||||
|
# when: reboot_required.stat.exists == false
|
||||||
|
|
||||||
Loading…
Reference in New Issue
Block a user