К сожалению, в первой статье не все поместилось. Поэтому информацию об управлении и настройке вновь установленных ПК я решил опубликовать во второй части.

Для управления удаленными компьютерами и их настройки необходимо установить на «сервер» операционную систему с репозиторием систему управления конфигурациями Ansible


Установка и настройка Ansible (для авто настройки и администрирования Ubuntu)


sudo apt install ansible
sudo nano /etc/ansible/hosts 
#это инвентори файл, в нем должны быть все управляемые компьютеры, по их hostname. либо  IP
#Синтаксис простой, в левой части произвольное имя, для нашего удобства, в правой части hostname или IP адрес.


После заполнения инвентори файла мы должны соединить клиентскую машину с сервером.
ssh-keyhen (на сервере создаем пару приватный/публичный ключ)
сd /home/localadm/.ssh/
ssh-copy-id localadm@192.168.*.*
#копируем публичный ключ с сервера на локальный компьютер (Затем, вводим пароль #локального администратора для локального ПК


Для проверки успешности настроек введем команду.
ansible  all –m ping   

Если мы видим ответ от клиентского ПК наши настройки выполнены верно

После успешной проверки настроек, необходимо запустить скрипт для доустановки необходимых пакетов и введения ПК в домен.

Для управления поведением компьютера в Ansible обычно создаются роли, но так как у нас тривиальная задача просто установить, удалить, настроить и ввести в домен компьютер c Ubuntu воспользуемся простым скриптиком (в терминогогии Ansible плэйбуком).

Прежде чем запустить плэйбук крайне важно зашифровать логин и пароль под которыми мы будем вводить компьютер в домен, в идеале это должна быть сервисная учетная запись, и средствами ансибла она должна быть зашифрована.
ansible-vault encrypt playbook3.yaml
#(введите пароль для зашифровки).


Для запуска скрипта после приведения скрипта к рабочему виду:
1. ansible-playbook playbook3.yaml –ask-vault-pass
2. вводим пароль локального администратора удаленного ПК
3.  вводим пароль шифрования


При запуске скрипта компьютер несколько раз должен быть перезагружен. После перезапуска скрипта вручную с сервера, после перезагрузки клиента, скрипт продолжит выполнение с того момента, на котором остановился (предварительно проиндексировав предыдущие шаги). Действие скрипта (вместе с перезагрузками) займет не более 10 минут.

Вот этот скрипт
playbook3.yaml

https://github.com/drumit/ubuntu_config/blob/master/playbook3.yaml


Скрипт Ansible ссылается на несколько дополнительных скриптов конфигурирующих kerberos, sssd, samba и еще некоторые важные файлы
krb5.conf.j2

https://github.com/drumit/ubuntu_config/commits/master/krb5.conf

sssd.conf.j2

https://github.com/drumit/ubuntu_config/blob/master/sssd.conf.j2


samba.conf.j2

https://github.com/drumit/ubuntu_config/blob/master/samba.conf.j2

Скрытый текст
nsswitch.conf.j2
  
https://github.com/drumit/ubuntu_config/blob/master/nsswitch.conf.j2


common-auth.j2

https://github.com/drumit/ubuntu_config/blob/master/common-auth.j2

common-account.j2

https://github.com/drumit/ubuntu_config/blob/master/common-account.j2

common-password.j2

https://github.com/drumit/ubuntu_config/blob/master/common-password.j2

common-session.j2

https://github.com/drumit/ubuntu_config/blob/master/common-session.j2

common-session-noninteractive.j2

https://github.com/drumit/ubuntu_config/blob/master/common-session-noninteractive.j2



P.S. Упустил возможность написать выше о замечательном продукте Evolution который совместно с плагином Evolution-ews успешно взаимодействует по протоколу EWS с Excgange сервером, «отдавая» не только почту, но и вполне приемлемо взаимодействуя с календарем.
Отдельно отмечу, что все настройки упомянутые выше делаются 1 раз.
Затем полностью установка и настройка системы занимает не более 1 часа.

Так чем же плох Linux и подходит ли он для обычного пользователя? А для пользователя в корпоративной среде?