Настройка
После установки Vagrant и VirtualBox желательно перезагрузить компьютер. Если всё прошло без косяков, то можно приступить к запуску первой виртуальной машины.
Для этого необходимо ввести следующие команды:
Тем самым мы создали Vagrantfile, в котором заданы настройки по-умолчанию, а именно:
- В качестве дистрибутива используется Ubuntu 14.04
- Порт 22 гостевой (виртуальной) машины пробрасывается на 2222 порт хост машины
- Текущая директория ./vagrant_demo пробрасывается на директорию /vagrant виртуальной машины
- Гостевой системе выделяется 512 МБ ОЗУ и 40 ГБ жесткого диска
Содержимое Vagrantfile ничто иное как код на языке Ruby, задающий определённые характеристики и поведение.
ubuntu/trusty64 — это кодовое название vagrant box, т.е. готового образа системы. Все образы так называемых vagrant boxes можно найти здесь.
Для того чтобы запустить виртуальную машину необходимо выполнить:
Ниже представлен скриншот процесса загрузки бокса и его последующей установки
После успешной загрузки и настройке достаточно выполнить команду
Но, в стандартной Windows отсутствует утилита ssh, поэтому можно получить вот такое сообщение об ошибке:
`ssh` executable not found in any directories in the %PATH% variable. Is anSSH client installed? Try installing Cygwin, MinGW or Git, all of whichcontain an SSH client. Or use your favorite SSH client with the followingauthentication information shown below:
…
Но не стоит расстраиваться, достаточно установить пакет утилит Cygwin и прописать в переменную PATH путь до бинарников.
После успешного выполнения команды появится окно с шеллом:
Поздравляю! Первый этап выполнен. Для отключения виртуалки необходимо выполнить команду из хост-машины:
Список основных команд:
- vagrant halt — останавливает виртуальную машину
- vagrant destroy — удаляет виртуальную машину
- vagrant suspend — «замораживает» виртуальную машину
- vagrant global-status — выводит список всех ранее созданных виртуальных машин в хост-системе
- vagrant ssh — подключается к виртуальной машине по SSH
Демо пример с Vagrant, поднимающим отдельную виртуальную машину с виртуальным окружением Python на борту, а также Django приложением, можно найти на моём гитхаб репозитории. Достаточно склонировать реп, перейти в папку и вызвать команду vagrant up. Vagrant установит Ubuntu 14.04.3 LTS и все необходимые пакеты, по завершению установки достаточно будет зайти на виртуальную машину и вызвать runserver.
Django приложение можно увидеть на 18000 порту хост-машины.
Установка Ant в Unix/Linux
Сейчас я расскажу как можно установить данный инструмент на различные Unix/Linux ОС. Для работы Maven потребуется установить JDK, вот некоторые полезные статьи в помощь:
И так, джаву установили. Идем далее….
Установка Ant в CentOS/RedHat/Fedora
-===Использование готового пакета==-
$ cd /usr/local/src && sudo wget http://apache.cp.if.ua//ant/binaries/apache-ant-1.10.1-bin.zip
Выполним распаковку скачанного архива:
# unzip apache-ant-*-bin.zip
Сейчас, перенесу данное ПО в /usr/local/ папку для дальнейшего использования:
# mv apache-ant-*/ /usr/local/
Создам симлинк:
# ln -s /usr/local/apache-ant-* /usr/local/ant
PS: Более подробно о симлинках, можно узнать тут:
Последним что нужно сделать — настроить переменную среду (environment) для Ant, для этого, я создам файл ant.sh в /etc/profile.d/ папке:
# vim /etc/profile.d/ant.sh
и прописываем следующее:
#!/bin/bash export ANT_HOME=/usr/local/ant export PATH=${ANT_HOME}/bin:${PATH} export CLASSPATH=.
После этого, сохраняем и закрываем файл. Сделаем файл исполняемым:
# chmod +x /etc/profile.d/ant.sh
Чтобы прописанные настройки вступили в силу и работали, выполнив следующую команду:
# source /etc/profile.d/ant.sh
Так же, можно обойтись без создания данного файла, для этого — открываем:
$ sudo vim ~/.bashrc
И вставляем:
export ANT_HOME=/usr/local/ant export PATH=${ANT_HOME}/bin:${PATH} export CLASSPATH=.
Перезагрузим оболочку:
# . /etc/profile.d/ant.sh
Проверяем, работает ли все корректно. Например, проверим версию Ant:
$ ant -version
Получаем:
Apache Ant(TM) version 1.10.1 compiled on February 2 2017
Как-то так.
-===Использование репозитория и пакетного менеджера==-
Можно установить Ant и через пакетный менеджер, для этого выполняем:
# yum install ant -y
Довольно простая установка.
Установка Ant в Debian/Ubuntu
-===Использование готового пакета==-
Описывал как это можно сделать выше.
-===Использование репозитория и пакетного менеджера==-
Выполняем:
# apt-get install ant -y
Установка Ant на Mac OS X
Для начала, устанавливаем HomeBrew:
После чего, выполняем команду:
$ brew search ant
Данная команда покажет какие пакеты имеются.
Чтобы установить, выполняем команду:
$ brew install ant
Использование cfssl в Unix/Linux
Создаем папку:
$ mkdir tmp && cd $_
Создаем центр сертификации (certificate authority или CA):
$ cat > ca-config.json << EOF { "signing": { "default": { "expiry": "8760h" }, "profiles": { "kubernetes": { "usages": , "expiry": "8760h" } } } } EOF
Создаем CSR подпись:
$ cat > ca-csr.json << EOF { "CN": "Kubernetes", "key": { "algo": "rsa", "size": 2048 }, "names": } EOF
Можно добавить хост(ы), например:
{ "hosts": , "CN": "www.linux-notes.org", "key": { "algo": "rsa", "size": 2048 }, "names": }
Создаем сертификат:
$ cfssl gencert -initca ca-csr.json | cfssljson -bare ca
Получаем примерный вывод:
2018/11/15 16:49:38 generating a new CA key and certificate from CSR 2018/11/15 16:49:38 generate received request 2018/11/15 16:49:38 received CSR 2018/11/15 16:49:38 generating key: rsa-2048 2018/11/15 16:49:38 encoded CSR 2018/11/15 16:49:38 signed certificate with serial number 352959392755430077750949756394023000115317850199
Другие вспомогательные команды
Создаем самоподписанный сертификат с использованием CSR:
$ cfssl selfsign www.linux-notes.net ca-csr.json | cfssljson -bare selfsigned
Генерируем self-signed root CA сертификат и приватный ключ:
$ cfssl genkey -initca csr.json | cfssljson -bare ca
Генерируем remote-issued сертификат и приватный ключ:
$ cfssl gencert -remote=remote_server csr.json
Генерируем local-issued сертификат и приватный ключ:
$ cfssl gencert -ca cert -ca-key key csr.json
Данная команда сгенерирует и выдаст сертификат и закрытый ключ из локального CA с помощью JSON. Вы можете использовать -hostname для переопределения SAN сертификатов.
Обновление OCSP файл ответов с новым сертификатом:
$ cfssl ocspsign -ca cert -responder key -responder-key key -cert cert \ | cfssljson -bare -stdout >> responses
Это вызовет ответ OCSP для сертификата и добавит его в файл ответов. Затем вы можете передать ответы на ocspserve для запуска OCSP-сервера.
Запускаем CFSSL API сервер. В CFSSL имеется поддержка HTTP-сервера с API; Все необходимые материалы можно найти в doc/api/intro.txt документе. Сервер запускается с помощью команды:
$ cfssl serve \ \ \
Пример:
$ cfssl serve -address=localhost -port=8888 -ca-key=ca-key.pem -ca=ca-cert.pem
Вывод логов можно контролировать с помощью «-loglevel» опции:
$ cfssl serve -loglevel 0
Где levels это:
- 0 — DEBUG
- 1 — INFO (По умолчанию)
- 2 — WARNING
- 3 — ERROR
- 4 — CRITICAL
Для помощи можно использовать:
$ cfssl -h Usage: Available commands: genkey gencrl ocspsign info certinfo sign version crl selfsign scan revoke serve gencert ocsprefresh ocspserve print-defaults bundle gencsr ocspdump Top-level flags: -allow_verification_with_non_compliant_keys Allow a SignatureVerifier to use keys which are technically non-compliant with RFC6962.
Вот и все, статья «Установка cfssl в Unix/Linux» завершена.
Использование Ant в Unix/Linux
Использование Ant очень простое. Все действия производятся через build.xml файл. Сейчас я приведу очень простые примеры использования данного ПО, но для начала создам папку для будущего проекта (и после чего, перейду в нее):
$ mkdir test-ant && cd $_
Как я уже сказал, все действия, осуществляются через сборочный файл, по этому, я создам его:
$ vim build.xml
Прописываем в него следующее:
<?xml version="1.0"?> <project name="Hello World Project" default="info"> <target name="info"> <echo>Hello World - Welcome to Apache Ant!</echo> </target> </project>
Чтобы собрать проект, выполните:
$ ant
Получаем:
# ant Buildfile: /home/captain/test-ant/build.xml info: Hello World - Welcome to Apache Ant! BUILD SUCCESSFUL Total time: 0 seconds #
Первый билд завершился успехом. Круто
Вот и все. Статья «Установка Ant в Unix/Linux» завершена.
Что такое Vagrant
Vagrant – это открытые программные средства для конфигурирования и развертывания нескольких сред разработки. Данная программа работает на Linux, Mac OS X и Windows, и хотя для управления виртуализацией она по умолчанию использует VirtualBox, ее можно использовать и с другими провайдерами, как VMware и AWS.
Преимущество Vagrant состоит в том, что, используя для конфигурирования центральную машину, можно развернуть несколько виртуальных выделенных машин, содержащих все необходимое. Кроме того, Vagrant позволяет нескольким пользователям разворачивать разнообразные рабочие среды с абсолютно одинаковыми конфигурациями.
Примеры systemd Unit файлов
Рассмотрим следующий пример, — это написания systemd скрипта для запуска tomcat-а. Для этого, открываем файл:
# vim /etc/systemd/system/tomcat9.service
И записываем в него следующий код:
Description=Tomcat9 After=syslog.target network.target Type=forking User=tomcat Group=tomcat Environment=CATALINA_PID=/usr/local/tomcat9/tomcat9.pid Environment=TOMCAT_JAVA_HOME=/usr/bin/java Environment=CATALINA_HOME=/usr/local/tomcat9 Environment=CATALINA_BASE=/usr/local/tomcat9 Environment=CATALINA_OPTS= #Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC' Environment="JAVA_OPTS=-Dfile.encoding=UTF-8 -Dnet.sf.ehcache.skipUpdateCheck=true -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -XX:+UseParNewGC -XX:MaxPermSize=128m -Xms512m -Xmx512m" ExecStart=/usr/local/tomcat9/bin/startup.sh ExecStop=/bin/kill -15 $MAINPID WantedBy=multi-user.target
Перезагрузим службу:
# systemctl daemon-reload
Добавим томкат в автозагрузку ОС:
# systemctl enable tomcat9
Перезапускаем томкат:
# systemctl restart tomcat9
Чтобы проверить статус, выполняем:
# systemctl status tomcat9 ● tomcat9.service - Tomcat9 Loaded: loaded (/etc/systemd/system/tomcat9.service; enabled) Active: active (running) since Tue 2017-05-09 22:04:58 EEST; 6s ago Process: 28528 ExecStop=/bin/kill -15 $MAINPID (code=exited, status=0/SUCCESS) Process: 28531 ExecStart=/usr/local/tomcat9/bin/startup.sh (code=exited, status=0/SUCCESS) Main PID: 28541 (java) CGroup: /system.slice/tomcat9.service └─28541 /usr/bin/java -Djava.util.logging.config.file=/usr/local/tomcat9/conf/logging.properties -Djava.ut... May 09 22:04:58 debian systemd: Starting Tomcat9... May 09 22:04:58 debian startup.sh: Tomcat started. May 09 22:04:58 debian systemd: Started Tomcat9.
Как видим, все четко работает. На этом, у меня все! Больше примеров будет дальше. Я буду добавлять их по мере необходимости. Но в основном, я использую шаблон что выше ( только немного его видоизменяю).
Статья «Пишем systemd Unit файл» завершена.
Использование locate и updatedb в Unix/Linux
Обновляем список файлов:
# updatedb
И после чего можно пользоваться, например мне нужно найти расположение файла datedetector.py (для добавление конфигурации fail2ban), то для этого нужно выполнить:
# locate datedetector.py /usr/lib/python2.7/site-packages/fail2ban/server/datedetector.py /usr/lib/python2.7/site-packages/fail2ban/server/datedetector.pyc /usr/lib/python2.7/site-packages/fail2ban/server/datedetector.pyo
updatedb
Данное руководство документирует версию GNU о updatedb, которая обновляет базы данных всех имен для файлов, используемые GNU locate. Базы данных имен всех файлов содержат списки файлов, которые были найдены в ходе сканирования данной утилиты. Имя файла базы данных по умолчанию определяется при установке и настройке locate и updatedb. Частота, с которой выполняется обновление баз и каталогов, для которых они содержат записи зависит от того, как часто updatedb запускается и так же от аргументов которые переданы в конфиге.
В сетевых средах, часто имеет смысл создать базу данных в корне каждой файловой системы, содержащий записи для этой файловой системы. Запустите updatedb для каждой файловой системы на файловом сервере, где это файловая система находится на локальном диске. Пользователи могут выбрать, какие базы данных нужно искать с помощью переменной среды или параметра командной строки. Базы данных не могут быть объединены вместе.
Новый GNU locate можно прочитать и старые, и новые форматы баз данных.
Опции для updatedb.
-uСоздать slocate базу данных, начиная с корневого каталога. Это происходит по умолчанию, если вызывается updatedb.
-U pathСоздать slocate базу данных, начиная с указанного пути.
-e dirsИсключить каталоги разделенными запятыми из базы данных slocate.
-f fstypesИсключить файловые системы, разделенные запятыми из базы данных slocate.
-l <num>Уровень безопасности. -l 0 означает что проверки безопасности выключены, что сделает поиск быстрее. -l 1 означает что проверки безопасности включены. Это по умолчанию.
-qТихий режим; Сообщения об ошибках подавляются.
-vПодробный режим; Показать файлы которые индексируются при создании базы данных.
—helpРаспечатать список опций для slocate и выйти.
—versionВывести номер версии slocate и выйти.
—output=dbfileФайл базы данных, чтобы построить. По умолчанию зависит от системы, но обычно это/usr/local/var/locatedb.
—netuser=userПользователю говорится искать сетевые каталоги, как, используя SU. По умолчанию
—old-formatСоздание базы данных в старом формате вместо нового.
locate project
Показывает все файлы, которые содержат строку «project». Если эта команда не работает, вам нужно будет выполнить команду:
# slocate -u
Эта команда создает slocate базу данных, которая позволит вам использовать команду найти (slocate). Это может занять несколько минут.
Опции для locate.
-uСоздать slocate базу данных, начиная с пути /.
-U dirСоздать slocate базу данных, начиная с пути.
-eИсключить каталоги из базы данных slocate.
-f
Исключить файлы на конкретной файловой системы из базы данных slocate.
-cРазпарсить «/etc/updatedb.conf» при обновлении базы данных slocate.
-l
Уровень безопасности. 0 означает что проверки безопасности выключена. Это сделает Осуществляет поиск быстрее. 1 означает что проверки безопасности включены. Это по умолчанию.
-i
Делает поиск без учета регистра.
-q
Тихий режим. Сообщения об ошибках подавляются.
-n
Ограничьте количество результатов.
-r—regexp=
Поиск по базе данных с помощью базовых регулярных выражений в POSIX.
-o—output=
Указывает базу данных, чтобы создать ее.
-d—database=
Указывает путь базы данных для поиска.
-h
—help вывод помощи.
-v—verbose
Подробный режим. Отображение файлов при создании базы данных.
-V—version
Отображение версии.
На этом, моя тема «Установка locate и updatedb в Unix/Linux» подошла к завершению.