Update 7
This commit is contained in:
48
Part-2/ansible-playbook/configure_backup.yml
Normal file
48
Part-2/ansible-playbook/configure_backup.yml
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
- name: Configure automated backups
|
||||||
|
hosts: yndx-client.practicumsuperstore.ru
|
||||||
|
become: yes
|
||||||
|
vars:
|
||||||
|
backup_script: /home/backup-user/run-backup.sh
|
||||||
|
backup_dir_local: /home/backup-user/backups
|
||||||
|
remote_backup_dir: /home/anscfg/backups
|
||||||
|
tasks:
|
||||||
|
- name: Create local backup directory
|
||||||
|
file:
|
||||||
|
path: "{{ backup_dir_local }}"
|
||||||
|
state: directory
|
||||||
|
owner: backup-user
|
||||||
|
group: backup-user
|
||||||
|
mode: '0755'
|
||||||
|
|
||||||
|
- name: Create backup script
|
||||||
|
copy:
|
||||||
|
content: |
|
||||||
|
#!/bin/bash
|
||||||
|
DATE=$(date +%Y%m%d_%H%M%S)
|
||||||
|
BACKUP_FILE="/tmp/backup_${DATE}.tar.gz"
|
||||||
|
tar -czf "$BACKUP_FILE" /etc /var/log 2>/dev/null
|
||||||
|
scp -o StrictHostKeyChecking=no "$BACKUP_FILE" anscfg@yndx-ansible.practicumsuperstore.ru:"{{ remote_backup_dir }}/"
|
||||||
|
rm -f "$BACKUP_FILE"
|
||||||
|
dest: "{{ backup_script }}"
|
||||||
|
owner: backup-user
|
||||||
|
group: backup-user
|
||||||
|
mode: '0755'
|
||||||
|
|
||||||
|
- name: Ensure remote backup directory exists (run locally)
|
||||||
|
delegate_to: localhost
|
||||||
|
become: no
|
||||||
|
run_once: true
|
||||||
|
file:
|
||||||
|
path: "{{ remote_backup_dir }}"
|
||||||
|
state: directory
|
||||||
|
owner: anscfg
|
||||||
|
group: anscfg
|
||||||
|
mode: '0755'
|
||||||
|
|
||||||
|
- name: Add daily cron job for backup-user
|
||||||
|
cron:
|
||||||
|
name: "Daily system backup"
|
||||||
|
user: backup-user
|
||||||
|
minute: "0"
|
||||||
|
hour: "2"
|
||||||
|
job: "{{ backup_script }}"
|
||||||
10
Part-2/ansible-playbook/create_user.yml
Normal file
10
Part-2/ansible-playbook/create_user.yml
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
- name: Create backup-user on client
|
||||||
|
hosts: yndx-client.practicumsuperstore.ru
|
||||||
|
become: yes
|
||||||
|
tasks:
|
||||||
|
- name: Create user backup-user with home directory
|
||||||
|
user:
|
||||||
|
name: backup-user
|
||||||
|
shell: /bin/bash
|
||||||
|
create_home: yes
|
||||||
|
system: no
|
||||||
6
Part-2/ansible-playbook/inventory.ini
Normal file
6
Part-2/ansible-playbook/inventory.ini
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
[yndx]
|
||||||
|
yndx-client.practicumsuperstore.ru
|
||||||
|
|
||||||
|
[all:vars]
|
||||||
|
ansible_user=anscfg
|
||||||
|
ansible_ssh_private_key_file=/home/anscfg/.ssh/id_rsa
|
||||||
44
Part-2/ansible-playbook/setup_services.yml
Normal file
44
Part-2/ansible-playbook/setup_services.yml
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
- name: Configure DNS and NTP on yndx-client
|
||||||
|
hosts: yndx-client.practicumsuperstore.ru
|
||||||
|
become: yes
|
||||||
|
tasks:
|
||||||
|
- name: Stop and disable systemd-resolved
|
||||||
|
systemd:
|
||||||
|
name: systemd-resolved
|
||||||
|
state: stopped
|
||||||
|
enabled: no
|
||||||
|
|
||||||
|
- name: Remove existing resolv.conf
|
||||||
|
file:
|
||||||
|
path: /etc/resolv.conf
|
||||||
|
state: absent
|
||||||
|
|
||||||
|
- name: Create new resolv.conf pointing to internal DNS
|
||||||
|
copy:
|
||||||
|
content: |
|
||||||
|
nameserver 10.10.1.200
|
||||||
|
dest: /etc/resolv.conf
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: '0644'
|
||||||
|
|
||||||
|
- name: Install chrony
|
||||||
|
apt:
|
||||||
|
name: chrony
|
||||||
|
state: present
|
||||||
|
update_cache: yes
|
||||||
|
|
||||||
|
- name: Configure chrony to use yndx-dns as NTP server
|
||||||
|
copy:
|
||||||
|
content: |
|
||||||
|
server 10.10.1.200 iburst
|
||||||
|
dest: /etc/chrony/chrony.conf
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: '0644'
|
||||||
|
|
||||||
|
- name: Restart chrony
|
||||||
|
systemd:
|
||||||
|
name: chrony
|
||||||
|
state: restarted
|
||||||
|
enabled: yes
|
||||||
74
Part-2/yndx-ansible.md
Normal file
74
Part-2/yndx-ansible.md
Normal file
@@ -0,0 +1,74 @@
|
|||||||
|
hostname yndx-ansible
|
||||||
|
# Задание - 1
|
||||||
|
sudo systemctl stop systemd-resolved
|
||||||
|
sudo systemctl disable systemd-resolved
|
||||||
|
sudo rm -f /etc/resolv.conf
|
||||||
|
echo "nameserver 10.10.1.200" | sudo tee /etc/resolv.conf
|
||||||
|
sudo apt install -y chrony
|
||||||
|
sudo nano /etc/chrony/chrony.conf
|
||||||
|
# Conig
|
||||||
|
server 10.10.1.200 iburst
|
||||||
|
-----------------------------------------------------------------
|
||||||
|
# Задание - 2
|
||||||
|
sudo apt update
|
||||||
|
sudo apt install -y ansible
|
||||||
|
# User
|
||||||
|
sudo adduser --disabled-password --gecos "" anscfg
|
||||||
|
# SSH - to
|
||||||
|
sudo -u anscfg ssh-keygen -t rsa -b 2048 -f /home/anscfg/.ssh/id_rsa -N ""
|
||||||
|
root@yndx-ansible:~# sudo cat /home/anscfg/.ssh/id_rsa.pub
|
||||||
|
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDJmlCFxkUQNJOJoOdpSFS0eikNpPPeV28rNkXq8ulRe5gKtTW9YmzRfwL/uQh8xXP58kXm04r0btPrYWx/1ZGA4T0yHBEVAkO4ECxGFh6M3zulnpQ+CuSLAbUEdSQOCoCvR5D9OxOnONx+osly/QjaI/3mPYOc6i6VZXPJWHPMNM7BzyDLqlG80nP+xFMfd4An2X/hTsLKcIRdjSrweqr+jqzpeOSA1HbbZgSqN6Fjy4zCVV7sdVaDxOqaV9CH9zN+1hS3yYUoEkCCX8YrsgggG4cmeQUR3MxNmoyr+Sm5hbkoK8ON45O8MvmxYL1hDqaS1BpG8ffz3SZ1mftGRwq9 anscfg@yndx-ansible
|
||||||
|
# Test
|
||||||
|
sudo -u anscfg ssh -o StrictHostKeyChecking=no anscfg@yndx-client.practicumsuperstore.ru
|
||||||
|
# Ansible
|
||||||
|
sudo -u anscfg mkdir -p /home/anscfg/ansible
|
||||||
|
cd /home/anscfg/ansible
|
||||||
|
sudo -iu anscfg
|
||||||
|
cd /home/anscfg/ansible
|
||||||
|
nano inventory.ini (посмотреть в папке ansible-playbook -> inventory.ini)
|
||||||
|
nano setup_services.yml (посмотреть в папке ansible-playbook -> setup_services.yml)
|
||||||
|
nano create_user.yml (посмотреть в папке ansible-playbook -> create_user.yml)
|
||||||
|
nano configure_backup.yml (посмотреть в папке ansible-playbook -> configure_backup.yml)
|
||||||
|
ansible-playbook -i inventory.ini setup_services.yml
|
||||||
|
ansible-playbook -i inventory.ini create_user.yml
|
||||||
|
ansible-playbook -i inventory.ini configure_backup.yml
|
||||||
|
# Задание - 4
|
||||||
|
sudo apt install -y vsftpd
|
||||||
|
sudo adduser --disabled-password --gecos "" ftpuser
|
||||||
|
echo "ftpuser:securepass" | sudo chpasswd
|
||||||
|
sudo mkdir -p /home/ftpuser/ftp/files
|
||||||
|
sudo chown ftpuser:ftpuser /home/ftpuser/ftp/files
|
||||||
|
sudo chmod 755 /home/ftpuser/ftp
|
||||||
|
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
|
||||||
|
sudo nano /etc/vsftpd.conf
|
||||||
|
# <Config
|
||||||
|
listen=YES
|
||||||
|
listen_ipv6=NO
|
||||||
|
anonymous_enable=NO
|
||||||
|
local_enable=YES
|
||||||
|
write_enable=YES
|
||||||
|
chroot_local_user=YES
|
||||||
|
local_root=/mnt/ftp
|
||||||
|
allow_writeable_chroot=YES
|
||||||
|
dirlist_enable=YES
|
||||||
|
download_enable=YES
|
||||||
|
# Config>
|
||||||
|
sudo systemctl restart vsftpd
|
||||||
|
sudo systemctl enable vsftpd
|
||||||
|
sudo chown root:ftpshared /mnt/ftp
|
||||||
|
sudo chown ftpuser:ftpshared /mnt/ftp/files
|
||||||
|
sudo chmod 775 /mnt/ftp/files
|
||||||
|
sudo chmod g+s /mnt/ftp/files
|
||||||
|
# Задание 5
|
||||||
|
sudo apt update
|
||||||
|
sudo apt install -y nginx apache2-utils
|
||||||
|
cd /home/geseas
|
||||||
|
tar -xf nginx2.tar.gz
|
||||||
|
cd nginx
|
||||||
|
sudo cp default /etc/nginx/sites-available/
|
||||||
|
sudo ln -sf /etc/nginx/sites-available/default /etc/nginx/sites-enabled/
|
||||||
|
sudo cp index.html 404.html 500.html /var/www/html/
|
||||||
|
sudo cp -r secure /var/www/html/
|
||||||
|
sudo chown -R www-data:www-data /var/www/html/secure
|
||||||
|
sudo chmod 750 /var/www/html/secure
|
||||||
|
sudo htpasswd -c /etc/nginx/.htpasswd admin
|
||||||
45
Part-2/yndx-client.md
Normal file
45
Part-2/yndx-client.md
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
hostname yndx-client
|
||||||
|
# Задание - 2
|
||||||
|
# Отключи systemd-resolved
|
||||||
|
sudo systemctl stop systemd-resolved
|
||||||
|
sudo systemctl disable systemd-resolved
|
||||||
|
sudo rm -f /etc/resolv.conf
|
||||||
|
echo "nameserver 10.10.1.200" | sudo tee /etc/resolv.conf
|
||||||
|
|
||||||
|
# Добавь имя хоста в /etc/hosts (чтобы sudo не ругался)
|
||||||
|
echo "127.0.0.1 yndx-client" | sudo tee -a /etc/hosts
|
||||||
|
|
||||||
|
# Установи chrony и настрой как клиент
|
||||||
|
sudo apt install -y chrony
|
||||||
|
echo "server 10.10.1.200 iburst" | sudo tee /etc/chrony/chrony.conf
|
||||||
|
sudo systemctl restart chrony
|
||||||
|
# User
|
||||||
|
sudo adduser --disabled-password --gecos "" anscfg
|
||||||
|
sudo mkdir -p /home/anscfg/.ssh
|
||||||
|
sudo chown anscfg:anscfg /home/anscfg/.ssh
|
||||||
|
echo "ssh-rsa KEY" | sudo tee /home/anscfg/.ssh/authorized_keys
|
||||||
|
sudo chown -R anscfg:anscfg /home/anscfg/.ssh
|
||||||
|
sudo chmod 700 /home/anscfg/.ssh
|
||||||
|
sudo chmod 600 /home/anscfg/.ssh/authorized_keys
|
||||||
|
# No PWD
|
||||||
|
sudo echo "anscfg ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/anscfg
|
||||||
|
# Задание - 3
|
||||||
|
wget http://10.12.0.122/mail2.tar.gz
|
||||||
|
|
||||||
|
# Распакуй
|
||||||
|
tar -xzf mail2.tar.gz
|
||||||
|
|
||||||
|
# Перейди в папку
|
||||||
|
cd mail
|
||||||
|
|
||||||
|
# Запусти скрипт (подставь своё имя и фамилию БЕЗ пробелов, например: IvanIvanov)
|
||||||
|
./script.sh PavlovVE practicumsuperstore.ru
|
||||||
|
# Задание 4
|
||||||
|
sudo apt install -y ftp
|
||||||
|
ftp 10.10.1.201
|
||||||
|
Name: ftpuser
|
||||||
|
Password: ******
|
||||||
|
cd files
|
||||||
|
get cat_3.png
|
||||||
|
# Задание 5
|
||||||
|
http://10.10.1.201/
|
||||||
65
Part-2/yndx-dns.md
Normal file
65
Part-2/yndx-dns.md
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
hostname yndx-dns
|
||||||
|
# Задание - 1
|
||||||
|
//1.1 Отключить systemd-resolved
|
||||||
|
sudo systemctl stop systemd-resolved
|
||||||
|
sudo systemctl disable systemd-resolved
|
||||||
|
sudo rm -f /etc/resolv.conf
|
||||||
|
echo "nameserver 127.0.0.1" | sudo tee /etc/resolv.conf
|
||||||
|
//1.2 Установка и настройка dnsmasq (DNS)
|
||||||
|
sudo apt update
|
||||||
|
sudo apt install -y dnsmasq
|
||||||
|
//Редактируем /etc/dnsmasq.conf:
|
||||||
|
sudo nano /etc/dnsmasq.conf
|
||||||
|
# <Config
|
||||||
|
domain=practicumsuperstore.ru
|
||||||
|
local=/practicumsuperstore.ru/
|
||||||
|
address=/WEB.practicumsuperstore.ru/10.10.1.200
|
||||||
|
address=/AD.practicumsuperstore.ru/10.10.1.201
|
||||||
|
address=/FS.practicumsuperstore.ru/10.10.1.202
|
||||||
|
listen-address=127.0.0.1
|
||||||
|
listen-address=10.10.1.200
|
||||||
|
bind-interfaces
|
||||||
|
server=8.8.8.8
|
||||||
|
server=1.1.1.1
|
||||||
|
# Config>
|
||||||
|
sudo systemctl restart dnsmasq
|
||||||
|
sudo systemctl enable dnsmasq
|
||||||
|
1.3 Настройка часового пояса (Москва, UTC+3)
|
||||||
|
sudo timedatectl set-timezone Europe/Moscow
|
||||||
|
//1.4 Установка и настройка NTP (chrony) на Хосте 1
|
||||||
|
sudo apt install -y chrony
|
||||||
|
sudo nano /etc/chrony/chrony.conf
|
||||||
|
# <Config
|
||||||
|
server 0.ru.pool.ntp.org iburst
|
||||||
|
server 1.ru.pool.ntp.org iburst
|
||||||
|
server 2.ru.pool.ntp.org iburst
|
||||||
|
allow 10.10.1.0/24
|
||||||
|
local stratum 10
|
||||||
|
sudo systemctl restart chrony
|
||||||
|
sudo systemctl enable chrony
|
||||||
|
# Config>
|
||||||
|
chronyc tracking
|
||||||
|
chronyc sources -v
|
||||||
|
-----------------------------------------------------------------
|
||||||
|
# Задание - 3
|
||||||
|
Добавь в /etc/dnsmasq.conf:
|
||||||
|
address=/mail.practicumsuperstore.ru/10.10.1.200
|
||||||
|
# MX-запись (важно!)
|
||||||
|
mx-host=practicumsuperstore.ru,mail.practicumsuperstore.ru,10
|
||||||
|
sudo systemctl restart dnsmasq
|
||||||
|
sudo apt update
|
||||||
|
sudo apt install -y postfix mailutils net-tools
|
||||||
|
sudo nano /etc/postfix/main.cf
|
||||||
|
# <Config
|
||||||
|
myhostname = mail.practicumsuperstore.ru
|
||||||
|
mydomain = practicumsuperstore.ru
|
||||||
|
myorigin = $mydomain
|
||||||
|
inet_interfaces = all
|
||||||
|
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
|
||||||
|
# Config>
|
||||||
|
home_mailbox = Maildir/
|
||||||
|
tail -n 10 /var/log/mail.log
|
||||||
|
ls -la /home/ubuntu/Maildir/new
|
||||||
|
cd /home/ubuntu/Maildir/new/
|
||||||
|
ls -la
|
||||||
|
less 1763836343.V802Ic0021M156897.yndx-dns
|
||||||
@@ -1 +0,0 @@
|
|||||||
hostname yndx-ansible
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
hostname yndx-client
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
hostname yndx-dns
|
|
||||||
Reference in New Issue
Block a user