Мне очень нравится PFSense 2.0. Особенно хороша у него стала функция OpenVPN сервера. Сам сервер настраивается в несколько кликов ( www.youtube.com/watch?v=odjviG-KDq8 ). После этого остается только создать пользователей и выслать им архив с настройками. Но когда передо мной встала задача перенести 70 пользователей из ClearOS в PFSense, я честно говоря приуныл. Перспектива рисовалась следующая. Зайти в «User Manager», щелкнуть кнопку добавления пользователя, ввести логин, ввести пароль, еще раз ввести пароль, вести фамилию и имя, отметить чекбокс «Click to create a user certificate», снова вести фамилию и имя, щелкнуть кнопку «Сохранить», перейти в «OpenVPN Server» вкладку «Client Export», сохранить архив с настройками, создать письмо, вставить туда email, написать логин, пароль, вложить архив с настройками, написать сопроводительный текст и отправить. И так 70 раз!!! Конечно если задаться целью и отключить мозг, все это можно сделать за день, а то и меньше. Но я от тупой работы либо засыпаю, либо прихожу в бешенство. Поэтому решено было сей процесс автоматизировать. И тут уныние, теперь уже переходящее в отчаяние, настигло меня во второй раз. Потому что PFSense на мои попытки переписать его потроха отвечал Read-only file system, а выполнить задуманное через config.xml мне не позволяло знание его структуры (и я подозреваю, что его средствами это невозможно). То есть на горизонте мрачно маячили либо нервное засыпание, либо покусание близ находящихся особей гуманоидного типа. Но выход был найден. Если выполнять работу самому не хочется, нужно написать скрипт, который будет нажимать на кнопки вместо тебя. Я уже вижу лес рук пользователей Windows которые нетерпеливо выкрикивают: «AutoIt, AutoIt!». Простите великодушно, я не описал полной картины. Я работаю из под Ubuntu. Ага. Лес рук сильно поредел. Осталась только пара, тройка. Ну давай, вот ты, мальчик в свитере с отчаянно пробивающейся бородой. Как, как? Правильно. Садись, пять. Xdotools, друзья. Вот тот самый мужик в синем трико с буквой S на груди, который спас мое отчаянное положение.
Условия работы.
Экран должен быть разблокирован.
Должен быть установлен браузер Google Chrome. В других не испытывалось.
Админку PFSense нужно хотя бы раз открыть. Скрипт не будет вводить имя и пароль на вход, хотя поначалу такая задумка была.
Система Ubuntu 11.04 Desktop. На других не проверялось.
Должен быть установлен пакет xdotools и sendemail.
Формат списка пользователей должен быть следующим:
login first_name second_name
Например:
S_Astapov Sergey Astapov
Логин должен совпадать с email адресом.
Ниже код (Умоляю, не стреляйте в меня табуретками. Я не программер. По сему код не претендует на изящество и соблюдение программистских догм и правил).
Искушенные читатели могут спросить: «А почему при задании имени файла не вписывается расширение?» И я отвечу — потому что при сохранении архива (по крайней мере у меня), выделение автоматически устанавливается только на имя файла. И при прописывании пути и имени, расширение остается неизменным.
Настоятельно рекомендую на время проверки раскомментировать строчку echo «All is right?» && read или делать паузы подлиннее, секунд 10-15.
Ну, вот и все. Искренне надеюсь, что скрипт поможет попавшим в мою ситуацию. Ну и напоследок видео. Как оно в живую.