Saya akan melakukan hal berikut:
- buat peran (sesuatu seperti 'pangkalan') tempat Anda (di antara hal-hal lain), buat pengguna yang sesuai (dan aturan sudo) agar dapat digunakan
- buat atau sesuaikan peran Anda untuk SSH, untuk dikelola
sshd_config
(saya akan cenderung menyarankan Anda mengelola seluruh file, menggunakan template
, tetapi itu terserah Anda), dan menonaktifkan login root
- buat peran SSH Anda bergantung pada peran dasar, misalnya menggunakan meta.
Untuk peran pertama (yang dasar), saya cenderung menggunakan sesuatu seperti:
name: base | local ansible user | create user
user:
name: "{{ local_ansible_user }}"
group: "{{ local_ansible_group }}"
home: "/home/{{ local_ansible_user }}"
state: present
generate_ssh_key: "{{ local_ansible_generate_key }}"
ssh_key_bits: 4096
ssh_key_type: rsa
tags:
- ansible
- local_user
- name: base | local ansible user | provision authorised keys
authorized_key:
user: "{{ local_ansible_user }}"
state: present
key: "{{ item }}"
with_items: "{{ local_ansible_authorised_keys }}"
tags:
- ansible
- authorised_keys
Untuk konfigurasi SSH, saya akan menggunakan:
- name: openssh | server | create configuration
template:
src: sshd_config.j2
dest: /etc/ssh/sshd_config
owner: root
group: root
mode: "0640"
validate: "/usr/sbin/sshd -tf %s"
notify:
- openssh | server | restart
tags:
- ssh
- openssh
Ketergantungan peran Ansible didokumentasikan di sini .
Anda juga bisa menggunakan pemesanan dalam buku pedoman Anda untuk melakukan ini.
Saya memiliki beberapa hal yang mungkin pada github (dari mana diambil di atas), jika Anda ingin melihatnya dalam konteks