ansible: linting bastion

This commit is contained in:
kirby 2025-05-27 09:21:38 +02:00
parent 6a3804dd86
commit 2d378d51a7
7 changed files with 55 additions and 49 deletions

4
ansible/.ansible-lint Normal file
View File

@ -0,0 +1,4 @@
---
skip_list:
- yaml[line-length]

View File

@ -1,10 +1,10 @@
--- ---
private_networks: "" bastion_private_networks: ""
allowed_networks: "" bastion_allowed_networks: ""
fail2ban_ignore_ips: "" bastion_fail2ban_ignore_ips: ""
dev_users: [] bastion_dev_users: []
admin_users: [] bastion_admin_users: []
rundeck_users: [] bastion_rundeck_users: []
log_server: "" bastion_log_server: ""

View File

@ -1,25 +1,25 @@
--- ---
- name: reload nftables - name: Reload nftables
ansible.builtin.systemd: ansible.builtin.systemd:
name: nftables name: nftables
state: reloaded state: reloaded
- name: reload fail2ban - name: Reload fail2ban
ansible.builtin.systemd: ansible.builtin.systemd:
name: fail2ban name: fail2ban
state: reloaded state: reloaded
- name: restart fail2ban - name: Restart fail2ban
ansible.builtin.systemd: ansible.builtin.systemd:
name: fail2ban name: fail2ban
state: restart state: restarted
- name: restart ssh - name: Restart ssh
ansible.builtin.systemd: ansible.builtin.systemd:
service: sshd service: sshd
state: restarted state: restarted
- name: restart rsyslog - name: Restart rsyslog
ansible.builtin.systemd: ansible.builtin.systemd:
service: rsyslog service: rsyslog
state: restarted state: restarted

View File

@ -1,44 +1,46 @@
- name: ensure nftables service is started and enabled ---
- name: Ensure nftables service is started and enabled
ansible.builtin.systemd: ansible.builtin.systemd:
name: nftables name: nftables
state: started state: started
enabled: true enabled: true
tags: all,firewall tags: all,firewall
- name: deploying nftables configuration - name: Deploying nftables configuration
ansible.builtin.template: ansible.builtin.template:
src: nftables.conf.j2 src: nftables.conf.j2
dest: /etc/nftables.conf dest: /etc/nftables.conf
owner: root owner: root
group: root group: root
mode: '0755' mode: "0755"
backup: true backup: true
validate: "nft -c -f %s" validate: "nft -c -f %s"
notify: notify:
- reload nftables - Reload nftables
- restart fail2ban - Restart fail2ban
tags: all,firewall tags: all,firewall
- name: ensure fail2ban is installed - name: Ensure fail2ban is installed
ansible.builtin.apt: ansible.builtin.apt:
name: fail2ban name: fail2ban
state: present state: present
update_cache: true update_cache: true
tags: all,firewall tags: all,firewall
- name: ensure fail2ban is enabled and running - name: Ensure fail2ban is enabled and running
ansible.builtin.systemd: ansible.builtin.systemd:
name: fail2ban name: fail2ban
state: started state: started
enabled: true enabled: true
tags: all,firewall tags: all,firewall
- name: deploying fail2ban ssh conf - name: Deploying fail2ban ssh conf
ansible.builtin.template: ansible.builtin.template:
src: sshd.conf.j2 src: sshd.conf.j2
dest: /etc/fail2ban/jail.d/sshd.conf dest: /etc/fail2ban/jail.d/sshd.conf
owner: root owner: root
group: root group: root
mode: '0644' mode: "0644"
notify: reload fail2ban notify: reload fail2ban
tags: all,firewall tags: all,firewall

View File

@ -1,13 +1,13 @@
--- ---
- name: user deployment related tasks - name: User deployment related tasks
include_tasks: users.yml ansible.builtin.include_tasks: users.yml
tags: all,users,rootonly tags: all,users,rootonly
- name: firewall deployment related tasks - name: Firewall deployment related tasks
include_tasks: firewall.yml ansible.builtin.include_tasks: firewall.yml
tags: all,firewall tags: all,firewall
- name: ssh deployment related tasks - name: Ssh deployment related tasks
include_tasks: ssh.yml ansible.builtin.include_tasks: ssh.yml
tags: all,ssh tags: all,ssh

View File

@ -1,28 +1,28 @@
--- ---
- name: ensure sshd is enabled - name: Ensure sshd is enabled
ansible.builtin.systemd: ansible.builtin.systemd:
name: sshd name: sshd
enabled: true enabled: true
tags: all,ssh tags: all,ssh
- name: deploy sshd_config - name: Deploy sshd_config
ansible.builtin.template: ansible.builtin.template:
src: sshd_config.j2 src: sshd_config.j2
dest: /etc/ssh/sshd_config dest: /etc/ssh/sshd_config
owner: root owner: root
group: root group: root
mode: 0644 mode: "0644"
validate: "sshd -T -f %s" validate: "sshd -T -f %s"
notify: restart ssh notify: Restart ssh
tags: all,ssh tags: all,ssh
- name: deploy rsyslog conf - name: Deploy rsyslog conf
ansible.builtin.template: ansible.builtin.template:
src: auth.conf.j2 src: auth.conf.j2
dest: /etc/rsyslog.d/auth.conf dest: /etc/rsyslog.d/auth.conf
owner: root owner: root
group: root group: root
mode: 0644 mode: "0644"
notify: restart rsyslog notify: Restart rsyslog
tags: all,ssh tags: all,ssh

View File

@ -1,13 +1,13 @@
--- ---
- name: installing sudo - name: Installing sudo
ansible.builtin.apt: ansible.builtin.apt:
name: sudo name: sudo
update_cache: true update_cache: true
state: present state: present
tags: all,users tags: all,users
- name: adding targetpw directive for sudo - name: Adding targetpw directive for sudo
ansible.builtin.lineinfile: ansible.builtin.lineinfile:
path: /etc/sudoers path: /etc/sudoers
line: "{{ item }}" line: "{{ item }}"
@ -17,37 +17,37 @@
- "Defaults insults" - "Defaults insults"
tags: all,users tags: all,users
- name: creating admin users - name: Creating admin users
ansible.builtin.user: ansible.builtin.user:
name: "{{ item.username }}" name: "{{ item.username }}"
shell: /bin/bash shell: /bin/bash
groups: sudo groups: sudo
with_items: "{{ admin_users }}" with_items: "{{ bastion_admin_users }}"
tags: all,users tags: all,users
- name: creating dev users - name: Creating dev users
ansible.builtin.user: ansible.builtin.user:
name: "{{ item.username }}" name: "{{ item.username }}"
shell: /bin/bash shell: /bin/bash
groups: sudo groups: sudo
with_items: "{{ dev_users }}" with_items: "{{ bastion_dev_users }}"
tags: all,users tags: all,users
- name: adding authorized_keys for regular users - name: Adding authorized_keys for regular users
ansible.builtin.authorized_key: ansible.posix.authorized_key:
user: "{{ item.username }}" user: "{{ item.username }}"
key: "{{ item.public_key }}" key: "{{ item.public_key }}"
state: "{{ item.state | default('present') }}" state: "{{ item.state | default('present') }}"
with_items: with_items:
- "{{ admin_users }}" - "{{ bastion_admin_users }}"
- "{{ dev_users }}" - "{{ bastion_dev_users }}"
tags: all,users tags: all,users
- name: adding authorized_keys for root users - name: Adding authorized_keys for root users
ansible.builtin.authorized_key: ansible.posix.authorized_key:
user: "root" user: "root"
key: "{{ item.public_key }}" key: "{{ item.public_key }}"
key_options: 'from="{{ private_networks }}"' key_options: 'from="{{ bastion_private_networks }}"'
state: "{{ item.state }}" state: "{{ item.state }}"
with_items: "{{ admin_users }}" with_items: "{{ bastion_admin_users }}"
tags: all,users,rootonly tags: all,users,rootonly