Files

90 lines
2.2 KiB
YAML

---
- name: Include optimization tasks
ansible.builtin.include_tasks: optimization.yaml
tags: optimization
- name: Install essential packages
become: true
ansible.builtin.apt:
name: "{{ system_packages.essential }}"
state: present
update_cache: true
cache_valid_time: 3600
tags: packages
- name: Set hostname and FQDN
tags: system
block:
- name: Set hostname
become: true
ansible.builtin.hostname:
name: "{{ hostname | default(inventory_hostname) }}"
- name: Configure FQDN in hosts file
become: true
ansible.builtin.lineinfile:
path: /etc/hosts
regexp: '^127\.0\.1\.1.*'
line: "127.0.1.1 {{ fqdn | default(hostname) }} {{ hostname | default(inventory_hostname) }}"
state: present
- name: Deploy MOTD template
become: true
ansible.builtin.template:
src: motd.j2
dest: /etc/motd
mode: "0644"
- name: Configure timezone
become: true
community.general.timezone:
name: "{{ timezone }}"
tags: system, ntp
- name: Install and configure NTP
ansible.builtin.include_role:
name: geerlingguy.ntp
tags: system, ntp
- name: Deploy SSH configuration
become: true
ansible.builtin.template:
src: sshd_config.j2
dest: /etc/ssh/sshd_config
owner: root
group: root
mode: "0600"
validate: "/usr/sbin/sshd -t -f %s"
notify: Restart ssh
- name: Create admin users with proper SSH keys
block:
- name: Ensure user exists
become: true
ansible.builtin.user:
name: "{{ item.name }}"
shell: "{{ item.shell | default('/bin/bash') }}"
groups: "{{ item.groups }}"
append: true
state: "{{ item.state | default('present') }}"
create_home: true
home: "/home/{{ item.name }}"
loop: "{{ admin_users | rejectattr('name', 'equalto', 'root') | list }}"
tags: users
- name: Deploy SSH authorized keys
become: true
ansible.posix.authorized_key:
user: "{{ item.0.name }}"
state: present
key: "{{ item.1 }}"
manage_dir: true
with_subelements:
- "{{ admin_users }}"
- ssh_keys
tags: users, ssh
- name: Include cron tasks
ansible.builtin.include_tasks: cron.yaml
tags: cron