Подсказочки
ISIS
1) router isis < имя isis процесса для данного устройства >
2) net 49.0001.0000.0000.0001.00
3) is-type level-2-only
4) metric-style wide
5) interface lo // ip router isis < имя isis процесса для данного устройства > (на ВСЕХ интах на которых есть isis соседи)
IBGP
Настраивается по loopback адресам! 192.168.255.1/32 например
1) router bgp 31133
2) neighbour
3) update source < интерфейс СВОЕГО лупбэка >
4) network
5) bgp router-id < лупбэк СВОЙ >
Vlan интерфейс, тегируемый самим хостом
(временный вариант)
1) ip link add link ens33 name ens33.100 type vlan id 100
2) ip addr add 192.168.1.1/24 dev ens33.100
3) ip link set link ens33.100 up
4) ip route add default via 192.168.1.100 dev ens33.100
(постоянный)
1) ip link add link ens33 name ens33.100 type vlan id 100
2) mkdir /etc/net/ifaces/ens33.100
3) nano /etc/net/ifaces/ens33.100/options ( TYPE=VLAN VID=100 ONBOOT=yes CONFIG_IPv4=yes BOOTPROTO=static )
4) nano /etc/net/ifaces/ens33.100/ipv4address (192.168.1.1/24)
5) nano /etc/net/ifaces/ens33.100/ipv4route ( default via 192.168.1.100 )
dns через resolvconf или systemd-resolved
OVS
1) apt-get update && apt-get install openvswitch
2) systemctl enable --now openvswitch
3) nano /etc/net/ifaces/default ( ovs_remove = false )
3) ovs-vsctl add-br sw1
4) ovs-vsctl add-port ens33 tag=100
5) ovs-vsctl add-port ens34 trunk=[100,200,300]
6)ip link set ens33 up
7)ip link set sw1 up
OSPF туннель
router ospf 1
network < сеть туненеля/32 > area 0
ip tunnel LOOPBACK-SOURCE LOOPBACK-DESTANATION
network < остальные сети при необходимсоти > area 0
и в обратную сторону по такому же алгоритму ( rtr - rtr )
Развертывание FREEIPA домена
1) Установка hostname
2) apt-get install freeipa-server ipa-server-dns
3) ipa-server-install --setup-dns
4) kinit admin
5) Groups, users можно через web UI
6) если терраформ будет нерабочий, то можно через web UI создать
Terraform
1) установка с зеркала yandex
2) дальше только вайбкод...
3) пример настройки:
terraform {
required_providers {
freeipa = {
source = "camptocamp/freeipa"
version = "1.0.0"
}
}
}
provider "freeipa" {
host = "srv-hq.au.team"
username = "admin"
password = "your_admin_password"
}
# Пример создания A и PTR записи
resource "freeipa_dns_record" "srv_hq" {
zone_name = "au.team"
name = "srv-hq"
a_record = ["192.168.1.10"] # Ваш IP
}
KEA dhcp
1) apt-get update && apt-get install kea-dhcp4 -y
2) nano /etc/kea/kea-dhcp4.conf (пример базового конфига)
{
"Dhcp4": {
"interfaces-config": {
"interfaces": [ "eth0" ]
},
"lease-database": {
"type": "memfile",
"name": "/var/lib/kea/kea-leases4.csv"
},
"subnet4": [
{
"id": 1,
"subnet": "192.168.10.0/24",
"pools": [ { "pool": "192.168.10.100 - 192.168.10.200" } ],
"option-data": [
{ "name": "routers", "data": "192.168.10.1" },
{ "name": "domain-name-servers", "data": "192.168.10.10" },
{ "name": "domain-name", "data": "au.team" }
],
"reservations": [
{
"hw-address": "00:0c:29:12:34:56",
"ip-address": "192.168.10.50",
"hostname": "adm-hq"
}
]
}
]
}
}
3) systemctl enable --now kea-dhcp4
Nextcloud
1) apt-get install apache2 apache2-mod_php8.2 -y
2) rm -rf /var/www/html/*
3) nano /etc/httpd2/conf/sites-availible/ncloud.conf ( Стандартный virtualhost )
4) скачать в папку /var/www/html nextcloud-setup.php с оф. сайта командой curl -O https://https://download.nextcloud.com/server/installer/setup-nextcloud.php
5) systemctl enable --now httpd2
Потребуется докачать еще много модулей для php и возможно apache2, но инсталлер скажет каких не хватает. далее делаем базу данных.
6) apt-get install postgresql17-server
7) /etc/init.d/postgresql initdb
8) systemctl enable --now postgresql
9) psql -U postgres
10) CREATE USER "ncloud-user" WITH PASSWORD 'P@ssw0rd';
11) CREATE DATABASE "ncloud-db" OWNER "ncloud-user";
12) чтобы база данных работала качаем pgsql модули для php
apt-get install php-pgsql php-pdo-pgsql -y
В /etc/php/8.2/apache2/php.ini увеличить max_executiuon_time и memory_limit. ( это необходимо для работы функции приложений. )
далее настройка через web интерфейс.
выбираем базу данных, докачиваем нужные модули если потребуются
нужно будет установить через nextcloud ldap groups and users и подключить ldap через какого-то пользователя. например через аккаунт адлминистратора. данные об нем можно узнать через web интерфейс freeipa.
Ansible. установка
apt-get install python3-module-pip python3-module-venv
mkdir -p /home/user/ansible
cd /home/user/ansible
python3 -m venv venv/ansible
source venv/ansible/bin/activate
pip install --upgrade pip
pip install ansible
# Генерируем ключ (если нет) — жми Enter на все вопросы
ssh-keygen -t rsa -b 4096 -N "" -f ~/.ssh/id_rsa
for host in ha1-cod ha2-cod srv1-cod srv2-cod srv3-cod; do
ssh-copy-id user@$host
done
mkdir -p /home/user/ansible/inventories/production
nano /home/user/ansible/inventories/production/hosts.yml
all:
children:
proxy:
hosts:
ha1-cod:
ha2-cod:
server:
hosts:
srv1-cod:
srv2-cod:
srv3-cod:
vars:
ansible_connection: ssh
ansible_user: user
ansible_ssh_private_key_file: ~/.ssh/id_rsa
export ANSIBLE_HOST_KEY_CHECKING=False
ansible -i inventories/production/hosts.yml -m ping all
nano /home/user/ansible/ansible.cfg [defaults]
host_key_checking = False
inventory = inventories/production/hosts.yml
далее - плейбуки
-- Angie setup --
- name: Setup Angie Web Server
hosts: server
become: yes
tasks:
- name: Install Angie
apt:
name: angie
state: present
- name: Create index.html
copy:
dest: /var/www/html/index.html
content: "{{ inventory_hostname }} by Angie!"
---
- name: Setup Keepalived
hosts: proxy
become: yes
tasks:
- name: Install keepalived
apt:
name: keepalived
state: present
-- KeepAlived --
- name: Configure keepalived
copy:
dest: /etc/keepalived/keepalived.conf
content: |
vrrp_instance VI_1 {
state {{ 'MASTER' if inventory_hostname == 'ha1-cod' else 'BACKUP' }}
interface eth0
virtual_router_id 51
priority {{ 101 if inventory_hostname == 'ha1-cod' else 100 }}
advert_int 1
authentication {
auth_type PASS
auth_pass 1234
}
virtual_ipaddress {
172.16.1.253/23
}
}
notify: restart keepalived
handlers:
- name: restart keepalived
service:
name: keepalived
state: restarted
-- haproxy --
---
- name: Setup HAProxy
hosts: proxy
become: yes
tasks:
- name: Install haproxy
apt:
name: haproxy
state: present
- name: Configure haproxy
copy:
dest: /etc/haproxy/haproxy.cfg
content: |
global
log /dev/log local0
chroot /var/lib/haproxy
user haproxy
group haproxy
defaults
log global
mode http
option httplog
timeout connect 5000
timeout client 50000
timeout server 50000
frontend http_front
bind 172.16.1.253:80
# Перенаправление HTTP -> HTTPS
redirect scheme https code 301 if !{ ssl_fc }
frontend https_front
bind 172.16.1.253:443 ssl crt /etc/ssl/certs/www.au.tea.pem
default_backend web_servers
backend web_servers
balance roundrobin
# Динамическое добавление серверов из группы server
{% for host in groups['server'] %}
server {{ host }} {{ hostaddr }}:80 check
{% endfor %}
listen stats
bind 172.16.1.253:9000
stats enable
stats uri /haproxy_stats
stats refresh 10s
notify: restart haproxy
handlers:
- name: restart haproxy
service:
name: haproxy
state: restarted
Личный портал IDECO VPN
вайбкод...