Подписка на блог

Customize in /user/extras/follow-sheet.tmpl.php.

Sample text.

Telegram, X or  Twitter, Facebook, VK, LinkedIn, Odnoklassniki, Pinterest, YouTube, TikTok, РСС JSON Feed

Sample text.

Самые разные заметки по ALT Linux

Трюк 2-3. Как улучшить вторичный сервер на ALT Linux

Всем привет. Сегодня будет про то, как на вторичном сервере ALT Linux:

  • настроить контроллер домена Samba DC
  • сконфигурировать ansible
  • развернуть веб приложение в docker

1. Настраиваем контроллер домена Samba DC

Ставим пакет Samba

apt-get install task-samba-dc -y
rm -f /etc/samba/smb.conf
rm -rf {/var/lib/samba, /var/cache/samba}
mkdir -p /var/lib/samba/sysvol

Настраиваем Samba

samba-tool domain provision

Продолжаем настраивать Samba

mv /etc/krb5.conf /etc/krb5.conf.back 
cp /var/lib/samba/private/krb5.conf /etc/krb5.conf 

systemctl enable --now samba 
systemctl status samba

samba-tool domain info 127.0.0.1

echo $'search au-team.irpo\nnameserver 127.0.0.1' > /etc/net/ifaces/ens18/resolv.conf; systemctl restart network; cat /etc/resolv.conf

Настраиваем пользователей

samba-tool group add hq

for i in {1..5}; do samba-tool user add hquser$i P@ssw0rd; done
# for i in {1..5}; do samba-tool user setexpiry hquser1$i --noexpiry - может понадобится (но это не точно)
for i in {1..5}; do samba-tool group addmembers hq hquser$i; done

samba-tool group listmembers hq

HQ-CLI вводим в домен

apt-get install task-auth-ad-sssd

на HQ-CLI  перезагружаем сеть, проверяем DNS
вводим в домен

control libnss-role
roleadd hq wheel

echo "WHEEL_USERS ALL=(ALL:ALL) /usr/bin/cat, /usr/bin/grep, /usr/bin/id" >> /etc/sudoers
tail /etc/sudoers
заходим доменным пользователем, выполняем sudo id

2. Настраиваем Ansible

apt-get install ansible sshpass -y
ansible-config init > ansible.cfg

Меняем файл конфигурации

vim /etc/ansible/ansible.cfg 


[defaults]
host_key_checking = False
interpreter_python=/usr/bin/python3

Создаём инвентарь и проверяем

cat << EOF >/etc/ansible/hosts
HQ-SRV ansible_user=sshuser ansible_password=P@ssw0rd ansible_port=2026
HQ-RTR ansible_user=net_admin ansible_password=P@ssw0rd
BR-RTR ansible_user=net_admin ansible_password=P@ssw0rd 
HQ-CLI ansible_user=user ansible_password=resu
EOF

ansible all -m ping

3. Развёртываем приложение через Docker

apt-get install docker-engine docker-compose-v2 -y
systemctl enable --now docker.service
mount -o loop /dev/sr0 /mnt/ -v
ls -l /mnt/docker/
cat /mnt/docker/readme.txt

docker load < /mnt/docker/site_latest.tar
docker load < /mnt/docker/mariadb_latest.tar
docker image ls

Делаем docker-compose.yml

cat << EOF > docker-compose.yml
services:
  database:
    container_name: db
    image: mariadb:latest
    restart: always
    ports: 
      - "3306:3306"
    environment:
      MARIADB_DATABASE: testdb
      MARIADB_USER: test
      MARIADB_PASSWORD: P@ssw0rd
      MARIADB_ROOT_PASSWORD: P@ssw0rd
    volumes:
      - db_data:/var/lib/mysql
      
  app:
    container_name: testapp
    image: site:latest
    restart: always
    ports: 
      - "8080:8000"
    environment: 
      DB_HOST: database
      DB_PORT: 3306
      DB_NAME: testdb
      DB_USER: test
      DB_PASS: P@ssw0rd
      DB_TYPE: maria
    depends_on: 
      - database
volumes:
  db_data:
EOF

идём далее

docker compose config
docker compose up -d 
docker ps
ss -ltnp4 | grep 8080

переходим на HQ-CLI, заходим по docker.au-team.irpo и по 192.168.3.10:8080
создаем запись

docker rm -f $(docker ps -qa)

снова запускаем docker compose

4. NTP

sed -i 's/pool pool.ntp.org iburst/server 172.16.1.1 iburst/' /etc/chrony.conf && systemctl restart chronyd && chronyc sources