---
- name: roma01
  hosts: roma01
  become: true
  tasks:
    - name: Ping my hosts
      ansible.builtin.ping:
    - name: Installed ansible
      ansible.builtin.dnf:
        name: ansible-core
        state: present
      tags:
        - initialize
    - name: Installed etckeeper
      ansible.builtin.dnf:
        name: etckeeper
        state: present
      tags:
        - initialize
    - name: Basic settings => hostname
      ansible.builtin.hostname:
        name: roma01
      tags:
        - basic
    - name: Basic settings => timezone
      community.general.timezone:
        name: Asia/Tokyo
      tags:
        - basic
        - japanese
    - name: Basic setting => language ja-jp.utf8 install requirement
      ansible.builtin.dnf:
        name: glibc-langpack-ja
        state: present
      tags:
        - basic
        - japanese
    - name: Basic setting => language ja-jp.utf8 check
      command: localectl status
      register: localectl_result
      check_mode: no
      changed_when: false
      tags:
        - basic
        - japanese
    - name: Basic setting => language ja-jp.utf8 change
      command: localectl set-locale LANG=ja_JP.utf8
      when: "'LANG=ja_JP.utf8' not in localectl_result.stdout"
      tags:
        - basic
        - japanese
    - name: Basic setting => install useful packages
      ansible.builtin.dnf:
        name:
         - epel-release
         - vim
         - bash-completion
         - htop
         - bind-utils
         - git
         - lsof
         - dnf-automatic
        state: present
      tags:
        - basic
        - packages
    - name: Basic setting => home dirs => ssh conf .ssh dir
      ansible.builtin.file:
        path: /etc/skel/.ssh
        owner: root
        group: root 
        state: directory
        mode: '0700'
      tags:
        - basic
        - user
    - name: Basic setting => home dirs => ssh conf .authorizedkey
      ansible.builtin.file:
        path: /etc/skel/.ssh/authorized_keys
        owner: root
        group: root 
        state: touch
        mode: '0600'
      tags:
        - basic
        - user
    - name: Basic setting => home dirs => ssh conf Mialdir
      ansible.builtin.file:
        path: "{{ item.path }}"
        owner: root
        group: root 
        state: directory
        mode: '0644'
      loop:
        - path: /etc/skel/Maildir
        - path: /etc/skel/Maildir/new
        - path: /etc/skel/Maildir/cur
        - path: /etc/skel/Maildir/tmp
      tags:
        - basic
        - user