В предыдущей статье мы производили настройку сети Vlan, продолжим глубже знакомиться с VLAN, а точнее с управлением оборудования.
Вводные данные: Нужно задать коммутатору ip-адрес, который будет доступен по 22 VLAN.
В качестве примера имеем коммутатор Dlink DGS-1510-52X
1. Заходим в режим конфигурации:
Switch#conf terminal
2. Создаем необходимый нам VLAN 22,management vlan.
Switch(config)#vlan 22 Switch(config-vlan)#exit
3. Назначаем ip адрес switch на интерфейсе 22 VLAN.
Switch(config)#interface vlan 22 Switch(config-if)#ip address 192.168.22.101 255.255.255.0
Теперь мы имеем доступ к коммутатору только с компьютера, к которому проброшен 22 VLAN.
ip link add link ens18 name ens18.300 type vlan id 300
ip link set dev ens18.300 up
ip addr add 10.0.10.66/27 dev ens18.300
ip route add 0.0.0.0/0 via 10.0.10.65
echo nameserver 8.8.8.8 > /etc/resolv.conf
restart
systemctl enable —now openvswitch
mkdir /etc/net/ifaces/ens19
mkdir /etc/net/ifaces/ens20
mkdir /etc/net/ifaces/ovs0
mkdir /etc/net/ifaces/mgmt
sed -i «s/OVS_REMOVE=yes/OVS_REMOVE=no/g» /etc/net/ifaces/default/options
vim /etc/net/ifaces/ovs0/options
TYPE=ovsbr
HOST=’ens18 ens19 ens20’
vim mgmt /etc/net/ifaces/mgmt/options
TYPE=ovsport
BOOTPROTO=static
CONFIG_IPV4=yes
BRIDGE=ovs0
VID=300
cp /etc/net/ifaces/ens18/options /etc/net/ifaces/ens19/options
cp /etc/net/ifaces/ens18/options /etc/net/ifaces/ens20/options
echo 10.0.10.66/27 > /etc/net/ifaces/mgmt/ipv4address
echo default via 10.0.10.65 > /etc/net/ifaces/mgmt/ipv4route
systemctl restart network
ovs-vsctl set port ens18 trunk=100,200,300
ovs-vsctl set port ens19 tag=200
ovs-vsctl set port ens20 tag=100
modprobe 8021q
sed -i «s/OVS_REMOVE=yes/OVS_REMOVE=no/g» /etc/net/ifaces/default/options
эта команда будет правильнее
Цикл для создания 30 пользователей User1-User30, пароль P@ssw0rd, срок действия пароля до 2025:
for i in {1..30};do
echo «P@ssw0rd» | ipa user-add user$i —first=User —last=$i —password;
ipa user-mod user$i —setattr=krbPasswordExpiration=20251225011529Z;
done
group1:
for i in {1..10}; do
ipa group-add-member group1 —users=user$i;
done
Устанавливаем сертификат FreeIPA:
cp /etc/ipa/ca.crt /etc/pki/ca-trust/source/anchors/
update-ca-trust extract
Вот пример Ansible Playbook, который подключается к хостам, получает имя устройства и IP-адрес, а затем записывает результат в единый файл на управляющем хосте (Ansible-хосте):
YAML
— hosts: all
tasks:
— name: Gather facts
ansible.builtin.setup:
— name: Write device info to file
ansible.builtin.lineinfile:
path: /path/to/device_info.txt
line: «Hostname: {{ ansible_hostname }}, IP Address: {{ ansible_host }}»
create: yes
state: present
delegate_to: localhost
run_once: true
Давайте разберем этот Playbook по шагам:
1. hosts: all — указывает, что данный Playbook будет выполнен на всех хостах, определенных в инвентаре Ansible.
2. tasks: — начало секции задач.
3. — name: Gather facts — задача, которая собирает факты об управляемых хостах, включая имя устройства и IP-адрес.
4. ansible.builtin.setup: — модуль, который используется для сбора фактов об управляемых хостах.
5. — name: Write device info to file — задача, которая записывает информацию об устройстве в файл.
6. ansible.builtin.lineinfile: — модуль, который используется для добавления или изменения строк в файле.
7. path: /path/to/device_info.txt — путь к файлу на управляющем хосте (Ansible-хосте), в который будет записана информация об устройствах.
8. line: «Hostname: {{ ansible_hostname }}, IP Address: {{ ansible_host }}» — строка, которая будет записана в файл. Здесь используются факты ansible_hostname и ansible_host, которые были получены на предыдущем шаге.
9. create: yes — создает файл, если он не существует.
10. state: present — гарантирует, что строка будет добавлена в файл.
11. delegate_to: localhost — указывает, что эта задача должна быть выполнена на управляющем хосте (Ansible-хосте), а не на управляемых хостах.
12. run_once: true — гарантирует, что эта задача будет выполнена только один раз, независимо от количества управляемых хостов.
Для запуска этого Playbook выполните следующую команду:
shell
ansible-playbook -i inventory.yml playbook.yml
Где:
— inventory.yml — файл с инвентарем хостов, к которым нужно подключиться.
— playbook.yml — файл с описанным выше Playbook.
После выполнения Playbook, в файле /path/to/device_info.txt на управляющем хосте (Ansible-хосте) будет записана информация обо всех управляемых хостах в формате «Hostname: , IP Address: «.
3885 из 16384