Как установить vagrant на ubuntu 18.04

Настройка

После установки 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» подошла к завершению.

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Мой редактор ОС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: