diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..7c833a9 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +*.retry +*.log +.DS_Store diff --git a/ansible-ca-certs.yaml b/ansible-ca-certs.yaml new file mode 100644 index 0000000..8cacf45 --- /dev/null +++ b/ansible-ca-certs.yaml @@ -0,0 +1,53 @@ +--- +- name: Настройка узлов Debian Bookworm (через su) + hosts: all + gather_facts: no + # Настройки повышения привилегий + become: yes + become_method: su + become_user: root + + vars: + ladmin_username: "ladmin" + ssh_key_path: "./ladmin.pub" + + tasks: + # 1. Установка необходимых пакетов через raw (так как python3 еще может не быть) + - name: Установка python3 и sudo на удаленном хосте + raw: apt-get update && apt-get install -y python3 sudo + changed_when: false + + # Теперь собираем факты о системе, так как python3 установлен + - name: Сбор фактов + setup: + + # 2. Добавление пользователя admin в группу sudo + - name: Добавление пользователя admin в группу sudo + command: /usr/sbin/usermod -aG sudo {{ ladmin_username }} + register: usermod_out + changed_when: "usermod_out.rc == 0" + + # 3. Копирование файла сертификата + - name: Копирование CA сертификата в /etc/ssl/certs + copy: + src: bit-ca-root.crt + dest: /etc/ssl/certs/bit-ca-root.crt + owner: root + group: root + mode: '0644' + + # 4. Замена строки в /etc/ldap/ldap.conf + - name: Настройка пути к сертификату в ldap.conf + lineinfile: + path: /etc/ldap/ldap.conf + regexp: '^TLS_CACERT' + line: 'TLS_CACERT /etc/ssl/certs/bit-ca-root.crt' + state: present + create: yes + + # 5. Добавление публичного ключа SSH + - name: Добавление SSH ключа для пользователя {{ ladmin_username }} + authorized_key: + user: "{{ ladmin_username }}" + state: present + key: "{{ lookup('file', ssh_key_path) }}" diff --git a/ansible-sshd-enable-publickey.yaml b/ansible-sshd-enable-publickey.yaml new file mode 100644 index 0000000..1b92260 --- /dev/null +++ b/ansible-sshd-enable-publickey.yaml @@ -0,0 +1,35 @@ +--- +- name: Настройка SSH доступа для Debian Bookworm + hosts: all + become: yes + become_method: sudo + + vars: + # Имя пользователя, которому добавляем ключ + target_user: "ladmin" + # Путь к вашему публичному ключу на локальной машине + local_ssh_key: "./ladmin.pub" + + tasks: + # Задача 1: Включение PubkeyAuthentication + - name: Включить PubkeyAuthentication в sshd_config + lineinfile: + path: /etc/ssh/sshd_config + regexp: '^(#\s*)?PubkeyAuthentication' + line: 'PubkeyAuthentication yes' + state: present + validate: '/usr/sbin/sshd -t -f %s' # Проверка конфига на ошибки + notify: Reload SSH + + # Задача 2: Добавление SSH ключа пользователя + - name: Добавить публичный ключ SSH для пользователя {{ target_user }} + authorized_key: + user: "{{ target_user }}" + state: present + key: "{{ lookup('file', local_ssh_key) }}" + + handlers: + - name: Reload SSH + service: + name: ssh + state: reloaded diff --git a/inventory.ini b/inventory.ini new file mode 100644 index 0000000..a59a897 --- /dev/null +++ b/inventory.ini @@ -0,0 +1,10 @@ + +[servers] +bit-srv-prn.bit-it.ru ansible_user=ladmin +bit-srv-fs.bit-it.ru ansible_user=ladmin +bit-srv-ldap01.bit-it.ru ansible_user=ladmin +bit-srv-rds.bit-it.ru ansible_user=ladmin + +[dmz-servers] +mail.bit-it.ru ansible_user=ladmin +storm.bit-it.ru ansible_user=ladmin