Итак: Сегодня речь пойдет о практической реализации применения инструмента Ansible
посредством которого я на рабочие станции с учетом принадлежности отделов буду распространять файл nethasp.ini
в каталог клиента 1С 8.3
, где клиент устанавливается по заметке "Формируем установку 1с 8.3.18.1957 через GPO"
. Также требуется пояснение, что клиента на рабочих местах мы используем x86
, что тоже будет накладывать на себя нюанс.
Как всегда, ниже указаны шаги посредством которых реализую свою задумку.
Шаг №1:
В домене разворачиваем виртуальную машину под ESXi 7
и в качестве операционной системы устанавливаю Ubuntu 22.04 Server
, затем опираясь на заметку "Через Ansible с доменными Windows системами на Ubuntu 22.04 Server"
настраиваем чтобы можно было обращаться к доменным системам использую Kerberos
аутентификацию.
hostname: srv-ansible.polygon.local
ekzorchik@srv-ansible:~$ dpkg -l | grep ansible ii ansible 8.3.0-1ppa~jammy all Ansible collections for ansible-core ii ansible-core 2.15.2-1ppa~jammy all Ansible IT Automation ekzorchik@srv-ansible:~$
Шаг №2:
Опираясь на заметку "Выполнить ConfigureRemotingForAnsible.ps1 через GPO"
распространяем функционал разрешающий подключение через Ansible
с Ubuntu 22.04 Server
к Windows
системам:
Шаг №3:
На Ubuntu 22.04 Server + Ansible
создаю файл hosts
, переменные аутентификации подключения к хостам Windows:
ekzorchik@srv-ansible:~$ sudo mkdir /etc/ansible/windows/ ekzorchik@srv-ansible:~$ sudo nano /etc/ansible/windows/hosts [windows] wrkst0101.polygon.local ekzorchik@srv-ansible:~$ sudo mkdir /etc/ansible/windows/group_vars/ ekzorchik@srv-ansible:~$ sudo nano /etc/ansible/windows/group_vars/windows.yml file: group_vars/windows.yml ansible_user: ekzorchik@POLYGON.LOCAL ansible_password: 712mbddr@ ansible_winrm_transport: kerberos ansible_port: 5985 ansible_connection: winrm ansible_winrm_server_cert_validation: ignore validate_certs: false
Шаг №4:
На Ubuntu 22.04 Server + Ansible
создаю каталог где будут располагаться файлы шаблонов:
ekzorchik@srv-ansible:~$ sudo mkdir /etc/ansible/playbook/templates
Шаг №5:
На Ubuntu 22.04 Server + Ansible
создаю шаблон файла nethasp.ini:
ekzorchik@srv-ansible:~$ sudo nano /etc/ansible/playbook/templates/nethasp.ini.j2 [NH_COMMON] NH_TCPIP = Enabled [NH_IPX] [NH_NETBIOS] [NH_TCPIP] NH_SERVER_ADDR = 10.90.90.10, srv-db04.polygon.local NH_TCPIP_METHOD = UDP
Шаг №6:
На Ubuntu 22.04 Server + Ansible
создаю PlayBook
посредством которого буду размещать nethasp.ini
на определенных рабочих станциях с учетом их использования базами данных: если бухгалтерия то один nethasp.ini
, если "Управление торговлей"
то файл nethasp.ini
другой — т.к. у меня два сервера с различными ключами по части количества лицензий.
ekzorchik@srv-ansible:~$ sudo nano /etc/ansible/playbook/nethasp.ini #sudo ansible-galaxy collection install ansible.windows - name: Copy nethasp.ini hosts: windows tasks: - name: Copy nethasp.ini win_template: src: nethasp.ini.j2 dest: "C:\\Program Files (x86)\\1cv8\\conf\\nethasp.ini"
Шаг №7:
На Ubuntu 22.04 Server + Ansible
запускаю созданный playbook:
ekzorchik@srv-ansible:~$ sudo ansible-playbook -i /etc/ansible/windows/hosts /etc/ansible/playbook/nethasp.ini -vvv и PlayBook отработал успешно, вот результат: changed: [wrkst0101.polygon.local] => { "changed": true, "checksum": "bb3a887e62b524d0c2adadd0c8acb1e47c1379ae", "dest": "C:\\Program Files (x86)\\1cv8\\conf\\nethasp.ini", "operation": "file_copy", "original_basename": "nethasp.ini.j2", "size": 154, "src": "/root/.ansible/tmp/ansible-local-20729tbjcgzty/tmptklha2vf/nethasp.ini.j2" } PLAY RECAP ************************************************************************************************************* wrkst0101.polygon.local : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 ekzorchik@srv-ansible:~$
Шаг №8:
А вот как выглядит если PlayBook
запускается для нескольких машин:
ekzorchik@srv-ansible:~$ sudo nano /etc/ansible/windows/hosts [windows] wrkst0101.polygon.local wrkst0102.polygon.local
или
ekzorchik@srv-ansible:~$ sudo nano /etc/ansible/windows/hosts [w1] wrkst0101.polygon.local [w2] wrkst0102.polygon.local
playbook
и запуск playbook:
ekzorchik@srv-ansible:~$ sudo nano /etc/ansible/playbook/nethasp.ini #sudo ansible-galaxy collection install ansible.windows - name: Copy nethasp.ini hosts: w1,w2 tasks: - name: Copy nethasp.ini win_template: src: nethasp.ini.j2 dest: "C:\\Program Files (x86)\\1cv8\\conf\\nethasp.ini" ekzorchik@srv-ansible:~$ sudo ansible-playbook -i /etc/ansible/windows/hosts /etc/ansible/playbook/nethasp.ini -vvv ok: [wrkst0101.polygon.local] => { "changed": false, "checksum": "bb3a887e62b524d0c2adadd0c8acb1e47c1379ae", "dest": "C:\\Program Files (x86)\\1cv8\\conf\\nethasp.ini", "operation": "file_copy", "original_basename": "nethasp.ini.j2", "size": 154, "src": "/root/.ansible/tmp/ansible-local-21142lrsk0m61/tmpa86gktvx/nethasp.ini.j2" } EXEC (via pipeline wrapper) ok: [wrkst0102.polygon.local] => { "changed": false, "checksum": "bb3a887e62b524d0c2adadd0c8acb1e47c1379ae", "dest": "C:\\Program Files (x86)\\1cv8\\conf\\nethasp.ini", "operation": "file_copy", "original_basename": "nethasp.ini.j2", "size": 154, "src": "/root/.ansible/tmp/ansible-local-21142lrsk0m61/tmphzjlc2lc/nethasp.ini.j2" } PLAY RECAP ************************************************************************************************************* wrkst0101.polygon.local : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 wrkst0102.polygon.local : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 ekzorchik@srv-ansible:~$
Итого: мною, как системным администратором воплощена в реальность задумка по распространению nethasp.ini
на рабочие места. Не претендую на 100%
решение, думается что будут в процессе возникать нюансы, о которых я поведаю в последующих заметках/доработках, сейчас работает.
Также чем больше я для себя придумаю задач, тем больше буду ориентироваться в использовании Ansible.
На этом данная заметка завершена, с уважением автор блога Олло Александр aka ekzorchik.