Files
cicd/playbooks/roles/ssh/tasks/SSH-playbook.yaml.examples
2025-07-20 14:53:12 +03:00

52 lines
1.3 KiB
Plaintext

---
- name: Configure SSH
hosts: main_server
become: yes
tasks:
- name: Change SSH port
lineinfile:
path: /etc/ssh/sshd_config
regexp: '^#?Port'
line: "Port {{ main_ssh_port }}"
- name: Secure SSH config
lineinfile:
path: /etc/ssh/sshd_config
regexp: "^{{ item.regexp }}"
line: "{{ item.line }}"
loop:
- { regexp: '^#?PermitRootLogin', line: 'PermitRootLogin no' }
- { regexp: '^#?PubkeyAuthentication', line: 'PubkeyAuthentication yes' }
- { regexp: '^#?PasswordAuthentication', line: 'PasswordAuthentication no' }
- name: Setup SSH keys
authorized_key:
user: "{{ item }}"
state: present
key: "{{ user_ssh_key }}"
loop:
- "{{ ansible_user }}"
- "{{ new_user}}"
- name: Reload SSH
service:
name: ssh
state: reloaded
- name: Ensure SSH service is running
ansible.builtin.service:
name: ssh
state: restarted
enabled: true
- name: Check if SSH is listening on the correct port
become: yes
shell: "ss -tulpn | grep :{{ main_ssh_port }}"
register: ssh_port_check
- name: show SSH port
debug:
var: ssh_port_check.stdout