Всем привет. Сегодня будет про то, как на вторичном сервере 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 hqHQ-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 id2. Настраиваем 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 ping3. Развёртываем приложение через 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