WooCommerce - создано
yii2:modules - [Модули]
Mapping - [Nested(вложенный) type]
Mapping
$ curl -XPUT'http://localhost:9200/twitter/tweet/_mapping'-d'{ "tweet" : { "_source" : {"enabled" : false}, "properties" : { "user" : {"type" : "string", "index" : "not_analyzed"}, "message" : {"type" : "string", "null_value" : "na", "store": true}, "postDate" : {"type" : "date"}, "priority" : {"type" : "integer"}, "rank" : {"type" : "float", "index_name" : "rating"} } } }'
Конфигурация / Config
Базовые типы данных
- "_source" : {"enabled" : false}— Тем самым мы указали, что хранить исходные данные для этого типа не нужно. Когда это может понадобится? Например у вас есть очень тяжелый документ с кучей информации, которую нужно только индексировать, но не нужно выводить в ответе
- "store": trueдля поля message говорит о том, что это исходник поля необходимо сохранять в индексе
- "index" : "not_analyzed"— тут мы указали, что это поле не должно анализироваться, т.е. должно хранится как есть. Какие бывают анализаторы
- "null_value" : "na"— дефолтное значение для поля
- "index_name" : "rating"— тут мы указали алиас для поля. Теперь мы можем обращаться к нему как к «rank» так и к «rating»
Типы array/object/nested
Nested(вложенный) type
Подробнее о типе можно узнать из документации Nested datatype
Document
{ "obj1" : [ { "name" : "blue", "count" : 4 }, { "name" : "green", "count" : 6 } ] }
Если мы будем искать name = blue && count>5то этот документ будет найден, что бы избежать такого сценария, стоит использовать nested тип.
mappig
{ "type1" : { "properties" : { "obj1" : { "type" : "nested", "properties": { "name" : {"type": "string", "index": "not_analyzed"}, "count" : {"type": "integer"} } } } } }
Для поиска по nested типу следует использовать nested queryили nested filter.
Multi-fields
Этот параметр позволяет указать разные настройки маппинга для одного поля. Добавлен ко все базовым типам (кроме nested и object).
"title": { "type": "string", "fields": { "raw": { "type": "string", "index": "not_analyzed" } } }
Если отключить анализатор, поиск будет работать не на полную катушку, а если включить, то группировать мы будем не по сырым данным, а по обработанным. Например, Санкт-Петербург после анализатора будет «Санкт» и «Петербург». Теперь мы можем обращаться к «title» за поиском и к «raw» за группировкой и любыми другими видами сортировки.
Остальные типы
- ip type— хранение ip в виде цифр
- geo point type— хранение координат (удобно при поиске ближайших объектов к определённой координате)
- geo point type— довольно специфичный тип для хранение определённых полигонов
- attachment type— Хранение файлов в базе закодированных в base64. Обычно используется с связке с собственным анализатором. (Хотя как по мне, удовольствие сомнительное)
Bash
Bash
Файлы конфигурации: .profile .bash_profile и .bashrc итд
В чем отличие .bash_profile и .bashrc?
.bash_profile загружается только при входе пользователя в систему (консольный вход, ssh), в то время как .bashrc запускается для интерактивных сервисов выполняемых без логина (запуск xterm).
Переменные и параметры
$$ | pid текущего shell (самого процесса-сценария) |
$! | pid последнего процесса в фоновом режиме |
$? | код возврата последнего процесса (функции или скрипта) |
$x | где x — номер параметра, переданного скрипту ($1, $2 и т. д., $0 — последний запущенный скрипт) |
$# | количество аргументов командной строки |
$* | все аргументы в виде одной строки (слова) |
$@ | то же самое, что и $*, но при этом каждый параметр представлен как отдельная строка (слово) |
$- | список флагов, переданных сценарию |
$_ | содержит последний аргумент предыдущей команды |
Потоки вывода и файловые дескрипторы
- du -h 1 > ./log 2>&1
Наименование | Описание |
1 | Поток вывода |
2 | Поток ошибок |
&1 | обозначает файловый дескриптор 1 |
Конструкции
0-9
A
Массивы
array=( one two three )files=("/etc/passwd""/etc/group""/etc/hosts")limits=(10, 20, 26, 39, 48)
B
C
case
case "$1" in start) esac
cut
микропрограмма для работы с текстом
Параметры:
- -d
- -f(число)
Переименовывает все файлы вида thread_1_seq_35970.1752.876204343 в файлы вида arch_1_0000035970_869578613.arc
#! /bin/bashFOUND=0for filename in*doecho"$filename"|grep-q"thread_1_seq_" if[$?-eq$FOUND]; thenpart=`echo$filename|cut-d"_"-f4|cut-d"." -f1`mv"$filename""arch_1_00000${part}_869578613.arc"fi done
D
debug
Необходимо добавить параметр -x Пример:
# bash -x script.sh
dialog
Представляет из себя интерфейс для библиотеки ncurses. И позволяет строить диалоги из скрипта. Альтернативой dialog может служить whiptail, который даже присутствует в некоторых системах по умолчанию.
#!/usr/bin/bash Choice=`$Dialog--stdout--clear--menu"Выберите файл"207114$Spisok`retval=$? case$retvalin0)esac
E
F
function
function f1{ # params $1echo$1 } f1 A
foreach
for fn in`cat filenames.txt`; doecho"the next file is $fn"cat$fndone
whileread filename doecho"Printing: $filename"cat"$filename"done< filenames.txt
for fn incat filenames.txt; docat"$fn"; done
for i in"${arrayName[@]}"do : # do whatever on $idone
G
H
Choice="Y" cat<< EOF_CONFIG >$config client remote xxxxx port 1194 proto udp dev tun ns-cert-type server tls-client reneg-sec 60 mtu-test cipher AES-256-CBC comp-lzo persist-key persist-tun keysize 256 nobind explicit-exit-notify 2 pkcs12 yyy/$Choice EOF_CONFIG echo$config
I
Индексы
- [@] - Ссылка на копию массива в переменной $1
- [*] - Строка
- [n]
- var=(1 2 3 4)
- echo ${var[@]}
if
ifчто-то then# делать тот-тоelse# делать тот-тоfi
ifчто-то; then# делать тот-тоelse# делать тот-тоfi
input
Запрос символа от пользователя
echo-n"Продолжить? (y/n) " read item case"$item"in y|Y)echo"Ввели «y», продолжаем...";; n|N)echo"Ввели «n», завершаем..."exit0;;*)echo"Ничего не ввели. Выполняем действие по умолчанию...";;esac
J
K
L
M
N
O
echo
Вывод прогресс бара
$ echo-ne'##### (33%)\r'
P
Q
R
S
select
select action in"Опция 1""Опция 2""Выход"doecho$actiontest$action = "Выход"&&breakdone
T
test
- Параметры:
- -f - Наличие файла
- -d - Наличие директории
- -e -
- -z - Наличие данных в строке
- =
- !=
- Сокращенный вариант [ ]
Применение в коде
if[$daynow!= 1]; then# ....fi if[$daynow-ge1]&&[$daynow-le7]; then# ....fi
Сравнение -eqс ==
$ [ a == a ]; echo$?0 $ [ a -eq a ]; echo$? -bash: [: a: integer expression expected 2
status
Проверка статуса выполнения программы
rm test_file if[$?-eq0]; thenecho-n"$(tput hpa $(tput cols))$(tput cub 6)[OK]"echoelseecho-n"$(tput hpa $(tput cols))$(tput cub 6)[fail]"echofi
tput
Команда tput инициализирует и управляет вашими сеансами работы с терминалом, используя базу данных terminfo. С помощью tput вы можете управлять различными функциями терминала, такими как перемещение или изменение вида курсора, изменение свойств текста и очистка определенных областей экрана терминала.
- tput hpa N — сдвиг курсора на N позиций
- tput cols получает ширину окна терминала
- tput cub 6 — сдвигает курсор на 6 позиций влево
Также можно выставить цвет
- tput setaf 0..7 — цвет текста
- tput setab 0..7 — цвет фона
- tput sgr0 — сброс на дефолтный
Подробнее: http://www.ibm.com/developerworks/ru/library/au-learningtput/
U
V
W
X
Y
BASH, SH
BASH, SH
Переменные и конфиг файлы
Согласно мануалу по bash, .bash_profile исполняется для оболочек, осуществляющих авторизацию пользователя. .bashrc исполняется для интерактивных оболочек, не авторизующих пользователя.
Документация
Программирования
- http://habrahabr.ru/post/47706/ 1 часть
- http://habrahabr.ru/post/47915/ 2 часть
- http://habrahabr.ru/post/48053/ 3 часть
Видео уроки
Применить настройки
- source ~/.bashrc
Примеры конфигурационных файлов
Примеры
Замена текста в файлах с возможностью рекурсии
find ./ -type f -exec sed -i 's/CHARSET=utf8/CHARSET=cp1251/g' {} \;
Прогрессбар
Видео уроки
RUS
ENG
Автодополнение Bash - [Устанвка]
Автодополнение Bash
bash-it
Установка
Настройка
Скрипты
- https://github.com/Bash-it/bash-it (Вдохновлен Oh My ZSH)
Статьи
Electron - [Electron]
Electron
- https://github.com/atom/electronисходник
Electron — бывший Atom Shell от GitHub, платформа для разработки кроссплатформенных приложений с помощью веб-технологий.
Проекты
Основная документация - [Back-end / Разработка приложений на стороне сервера]
Основная документация
Back-end / Разработка приложений на стороне сервера
Back-end database / Разработка и настройка баз данных
Серверное программирование и утилиты
Front-end / Разработка приложений для сайтов
App / Разработка приложений под разные платформы
Системы анализа и статистики
Несколько интересностей и полезностей для веб-разработчика
- https://habrahabr.ru/users/ilusha_sergeevich/topics/ - дайджесты с интересными решениями и проектами
HTTP/REST Clients - [HTTP/REST Clients]
HTTP/REST Clients
- Advanced REST Client (electron)
- Ling (electron)
- https://restlet.com/modules/client/ (DHC Rest Client)
Only MAC OS
CraftCms - [CraftCms]
CraftCms
CMSнаписано на нашем любимом Yii2 Framework и представляет из себя хорошо продуманную архитектуру с возможностью мультисайтинга и движком плагинов
JQuery plugins / Плагины (Bootstrap) - [Меню / Navbar]
JQuery plugins / Плагины (Bootstrap)
Cookie
Snippets
Коллекции / Обзоры
Визульное отображение / Виджеты
UI / Bootstrap
- http://getbootstrap.com/ (оригинал)
Редакторы
Работа с контентом
Themes
- https://github.com/VinceG/Bootstrap-Admin-Theme (Для реализаций админки Демо)
- http://jumpstartthemes.com/themes/ - Платные темы
- https://wrapbootstrap.com/ - Платные темы
Templates
Комбобокс / Селекторы / Listbox
- http://www.senamion.com/blog/jmultiselect2side.html - jmultiselect2side
- http://davidstutz.github.io/bootstrap-multiselect/ - Bootstrap Multiselect
DropDown
- https://github.com/alxlit/bootstrap-chosen (предпочтителен)
Tags
- https://github.com/TimSchlechter/bootstrap-tagsinput (предпочтителен)
- https://github.com/alxlit/bootstrap-chosen (предпочтителен)
- https://github.com/max-favilli/tagmanager (интересно)
Переключатели
- https://github.com/claviska/jquery-dropdown (inline dropdown)
Календари / DatePicker
Анимация
Icons / Arows
Меню / Navbar
Mobile
Контекстное
Альтер / Промт
Блокирока контента
- https://github.com/malsup/blockui/ - или всплывающее окно (пожайлуста подождите) или блокировка выбранного node
Template
Примеры
Сплитеры
Карусели
Скрол
- https://github.com/webcreate/infinite-ajax-scroll (автоматическия подгрузка контента при скроле)
- https://github.com/janpaepke/ScrollMagic (Магия при скролинге parallax effect)
- http://www.pixxelfactory.net/jInvertScroll/ (горизонтальный parallax effect)
Подсказки / ToolTip / Notify
Notify
growl
Просмотр в окне / Lightbox
Модальные окна
Popup
Галерея / Gallery
Слайдеры
- http://refreshless.com/nouislider/ - не плохой
- http://jqueryui.com/demos/slider/ - конечно UI.
Lazy images
Forms / Элементы форм
Стилизация
Checkbox
Editables / Tables / Sortable
Input controls
Masks
Control input length
Validate
Form Builder
Color Picker
Progress Bar
Autocomplete
Wizard
Buttos
Sliders
Spin / увелить-уменьшить значение type input
File Input
Tree view
- https://github.com/vakata/jstree/ - JsTree, DEMO
Markdown
Pagination / Переключатели страниц
Прелоадер
Графики
Поведение пользователя
- http://serkanyersen.github.io/ifvisible.js/demo.html (смотрит пользователь иль управляет страницей)
Посмотреть
- http://masonry.desandro.com/ - Равномерное распределение контента
- http://needim.github.com/noty/ - Вывод всплывающих сообщений
- http://code.drewwilson.com/entry/tiptip-jquery-plugin - вывод подсказок Tip
- http://benalman.com/projects/jquery-bbq-plugin/ - Маршрутизация URLна стороне клиента
- http://imakewebthings.com/jquery-waypoints - Добавляет возможность вешать обработчики на событие попадания какого-либо DOM-элемента в область видимости.
- http://www.infinite-scroll.com/ - Ленивая загрузка контента (бесконечный скролл)
Yii2 шаблоны / темы - [Themes / Темы]
Yii2 шаблоны / темы
Менеджеры
- AdminLte - yii2-theme-adminlte
- Agency - yii2-theme-agency
- DataServ - yii2-theme-dataserv
- Flat - yii2-theme-flat
- Hyde - yii2-theme-hyde
- Obaju - yii2-theme-obaju
- Yii2 original - yii2-theme-original
- Sailor - yii2-theme-sailor
- Twenty Fifteen - yii2-theme-twentyfifteen
Themes / Темы
Semantic-UI
Статьи / Ссылки
PostgreSQL - [Документация]
PostgreSQL
Создание БД
$ echo"ALTER USER postgres WITH ENCRYPTED PASSWORD 'postgres';"|sudo-u postgres psql $ echo"CREATE DATABASE fias WITH OWNER postgres;"|sudo-u postgres psql
Создание дампа / Backup create
$ pg_dump -U B -T-h host1 dbname > outfile.sql
$ pg_dump -U B -T dbname |gzip> filename.gz
$ pg_dumpall > outfile.sql
$ pg_dump --host 127.0.0.1 --port5432--username"postgres"--no-password--format plain --no-owner--no-privileges--no-tablespaces--verbose--no-unlogged-table-data--file"/dump3""test"
$ sudo-u postgres pg_dump -U postgres -d fias -n public >/tmp/fias.sql
$ sudo-u postgres pg_dump -U postgres -d fias -n public --schema-only
Восстановление из дампа / Restore
# psql park < ./park.sql
# psql -h localhost -f dump2 -U postgres test2
# psql –h localhost –p 5432 --dbname=park --username=mirocow < park2.20151018_142522/park2.sql
Клиенты
- http://www.pgadmin.org/ (app: mac, linux, windows)
- http://www.valentina-db.com/ (app: mac, linux, windows)
- https://eggerapps.at/pgcommander/ (app: mac)
- http://www.psequel.com/ (app: mac)
- http://www.hankinsoft.com/SQLProPostgres/ (app: mac)
- https://github.com/dbcli/pgcli (app cli)
- apt-get install phppgadmin (git clone git://github.com/phppgadmin/phppgadmin.git)
Документация
- Документация (RUS)
- PostgreSQL 9.6 (RUS)
- PostgreSQL 10 (RUS)
Компаненты / Настройка
Книжки/Статьи
Ссылки
Eclipse
Eclipse
How can i Eclipse upgrade / Как я могу обновить Eclipse
Обновление до текущей версии
Список релизов
Выбираем нужный билд, к примеру 4.5M5a, и добавляем новый Update repository: http://download.eclipse.org/eclipse/updates/4.5milestones
Debug
- Отладка с помощью Xdebug
Plugins
Темплайты
Статьи
Видео уроки / Screencast
Xcode - [Ошибки]
Xcode
$ brew install qt
Ошибки
Xcode not set up properly. You may need to confirm the license agreement by running /usr/bin/xcodebuild.
There is a similar problem with building Qt itself with Xcode 8. I have the Qt 5.7 source code on my machine with Xcode 8 GM, and I when I run 'configure' I get the same message about needing to agree to the Xcode license. Going through the agree procedure (which is described wrongly in the error message, incidentally) makes no difference. (https://forum.qt.io/topic/71119/project-error-xcode-not-set-up-properly/7)
<Growl/Growl.h> file not found in xcode
To include a framework in your Xcode project, choose Project > Add to Project and select the framework directory. Alternatively, you can control-click your project group and choose Add Files > Existing Frameworks from the contextual menu. When you add an existing framework to your project, Xcode asks you to associate it with one or more targets in your project. Once associated, Xcode automatically links the framework against the resulting executable.
xcode-select: error: tool 'xcodebuild' requires Xcode
xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance
$ xcode-select --install $ xcode-select --switch/Library/Developer/CommandLineTools $ xcode-select -s/Applications/Xcode.app/Contents/Developer
Chrome DevTools - [Расширения]
Chrome DevTools
Расширения
Возмжности
Консоль
Статьи
Видео / Скринкасты
Chrome - [Chrome]
Chrome
Chromium Сборки
Ссылки
- chrome:\/\/net-internals/#httpThrottling
PhpStorm IDE for PHP - [2017.3]
PhpStorm IDE for PHP
Отладка / Debug
Автогенерация кода
Существует куча рутинных задач, которые иногда выполняются самим фреймворком, а иногда требуют тупой ручной работы. PHPStorm помогает упростить некоторые [CTRL]+N, например:
Создание геттеров и сеттеров (Getters & Setters)
По существующим переменным класса можно сгенерировать набор геттеров и\или сеттеров, причем в появляющемся окне можно выбрать для каких именно.
Создание PHPDoc
По сути действие аналогично тому, как если перед существующим методом начать писать
/**
и нажать Enter. Можно выбрать одну или несколько функций и на основании атрибутов и содержимого будет сформирован Doc Block.
Переназначение и реализация при наследовании (Override & Implementation) При создании класса потомка или реализации абстрактных методов, чтобы не допустить ошибку, обычно приходится лезть в класс предок и запоминать или копипастить название и атрибуты метода. Или проверять для всех ли абстрактных методов есть реализация и вспоминать что же там требуется для ArrayAccess.
Есть вариант получше:
- [CMD] + I – Имплементация
- [CMD] + O – Переназначение
После нажатия хоткея появляется окно где можно выбрать какие именно методы будем реализовывать. После выбора генерится соответствующий метод с соблюдением приватности и имена атрибутов, например так: public function createTable($drop = false)
{return parent::createTable($drop);}
Автоформатирование кода
Когда пишешь код сам, обычно форматирование получается само, но в ситуации, когда нужно поменять Code Style или пытаешься открыть чужой непривычно оформленный код, возникают проблемы. Можно смириться, а можно нажать [CMD] + [ALT] + L и IDE отформатирует код в соответствии с настройками (Preferences → Project Settings → Code Style → PHP)
Подсказки (Code Completition)
Для функций нужно писать PHPDoc с параметром @ return. Например:
/** @return SomeClass */function a(){[…]}
Для переменных также можно указать комментарий:
/** @var $my_var SomeClass */
Тогда ниже для $my_var будет доступны подсказки
Для методов над классом можно указать PHPDoc
/** @method B foo() Описание метода */class B extends A {[…]}
Если функция возвращает массив объектов
/** @return SomeObject[] */
Консоль
Многие фреймворки используют консоль для быстрого выполнения частых действий. Для Symfony, Zend и других популярных фреймворков PHPStorm поддерживает подсказки и автодополнение консольных команд в Command Line Tools Console [CMD] + [SHIFT] + X
Разновидности поиска
[CMD] + N – Find by Class Name
Поиск по имени класса. Удобно в больших проектах, когда всё зарыто вглубь директорий или просто неизвестно где находится. Убойности добавляет «умный поиск», т.к. ищется как по части названия класса, так и по первым буквам, например SomeVeryLongClass будет найден по «SVLC». Учитывает регистр букв, будьте внимательны.
UPD: «Умный поиск» разработчики называют Camel's Hump. Кстати в настройках можно сделать чтобы выделение слов, а также перемещение осуществлялось не целиком (до пробела), а именно по по словам (до заглавной буквы). Спасибо, yujin1st
[CMD] + [SHIFT] + N – Find by File Name
Поиск по имени файла. Аналогично поиску по имени класса использует «умный поиск».
UPD: Для нахождения файла по вложенности можно использовать слеш: some/deep/dir/with/file.txt найдется по «s/d/d/w/f», спасибо develop7
[CMD] + [SHIFT] + [ALT] + N – Find Symbol
Поиск любой функции/метода и констант, очень удобно, когда точно помнишь имя метода, а класс нет. Спасибо conf
[ALT] + [F7] – Find Usages
В момент когда курсор находится на имени класса или метода нажатие хоткея позволяет найти все использования в проекте или определенной части (Scope).
Есть вариант [CTRL] + [ALT] + [F7] — тот же поиск по использованиям, но в виде контекстного меню. Спасибо iPavel
[CTRL] + [SHIFT] + F – Find in Path
Поиск произвольной фразы по файлам проекта. При рефакторинге обычно хорошо дополняет Find Usages.
Не стоило бы писать о “просто поиске”, если бы не возможность ограничить директорию в котором будут искаться нужные штуки, или настроить Scope. Scope позволяет гибко настроить и сохранить область поиска, для использования в дальнейшем. Можно выкинуть из поиска, например, файлы фреймворка или сторонние либы.
PhpStorm license key
Ключи активации phpstorm Ver 8 - 9 (Windows / Linux / MacOs)
Ключи активации phpstorm Ver 10 - 11 (Windows / Linux / MacOs)
2016.1
2016.2
2016.2.1
2016.3
2016.3.2 - 2016.3.3
2017.1.1 - 2017.1.2
2017.1.4
2017.3.1
O себе - [O себе]
O себе
- Активно увлекся программированием в 1990 году. Свое знакомство с WEB начал с интерпритатора Perl, затем плавно перешел на PHP. Огромное кол-во времени провожу за чтением специализированной литературы. Не увлекаюсь соц сетями и не состою ни в каких братствах. Всегда готов помочь любому обратившемуся.
- Имею не маленький опыт в настройке UNIX/LINUXсерверов и написанию программ на PHP. В качестве основных инструментов разработки использую PHPed + DBG (на платформе Win7), также последнее время работаю на Mac OS, где постоянно применяю ряд программ: Homebrew, PhpStorm IDE for PHPитд (Полный список ПО доступно тут). Cерверную часть предпочитаю развертывать на Debianсистемах. В своих работах использую Yii Framework / YiiFramework 2и Drupal.
- Также увлекаюсь спортом и люблю слушать качественную музыку.
- Являюсь разработчиком: roof-builder, 1С + Drupal
- Предпочитаемое программное обеспечение
- Предпочитаемое серверное окружениe:
- Предпочитаемое серверное ПО
- Также использую:
- Использую сетевое программное обеспечение
- Предпочитаемое фронтенд окружениe:
- JQuery - Library
- Socket.IO - Websockets
- Meteor - Framework
- Electron - IDE Framework
- Require.JS - Загрузка JS скриптов
- Backbone.js - MVC
Vagrant - [Сатьи / Сайты / Документация]
Vagrant
Установка
$ apt install-f $ apt --fix-brokeninstall $ apt install ruby-dev vagrant $ apt install virtualbox virtualbox-ext-pack
$ modprobe -a vboxguest vboxsf vboxvideo
$ modprobe vboxnetadp
$ modprobe vboxnetflt
Коробочки
- debian/contrib-jessie64 - Vanilla Debian 8 "Jessie" build with contrib vboxsf kernel module
Плагины
Системы управления конфигурацией
Docker - по сути это некий контейнер в который вы можете засунуть операционную систему, свой софт и базу данных и запустить его. У контенеров есть слои, ОС - нижний слой, софт выше слой, и ваше приложение и данные - верхний слой. Контенеры удобны для переноса приложения и сопровождающего окружения на сервер или в облако. Docker не создает виртуальную систему, а только эмулирует ее пробрасывая системные вызовы и работает стабильно только в Linux. С недавнего времени появилась версия для MacOS. Обычно сброка бокса описана в файле Dockerfile.
Vagrant, же, напротив - базируется на системах виртуализации (VirtualBox, libvirt, xen). С самого начала он создает полноценную виртуальную машину, выполняет скрипт provision, который устанавливает все окружение и настраивает его. Vagrant работает на всех операционных системах в силу своей природы.
- Shell — старые добрые shell-скрипты. В XXI веке уже не интересно.
- Ansible— молодая, набирающая обороты, система управления конфигурацией.
- Chef— про него, пожалуй, слышали все. Поддерживается standalone (Chef Solo) и серверная (Chef Client) версии.
- Docker— модная в последнее время система, поддерживающая концепцию Immutable Server.
- Puppet— одна из наиболее распространенных систем управления конфигурацией. Поддерживается standalone и серверная версия.
- Salt — система управления конфигурацией Salt Stack.
Системы виртуализации
- virtualbox
- lxc
- docker
Создание коробки из рабочей виртуальной машины
У нас есть виртуальная машина с наименованием "vm". В отключено состоянии выполняем команду от root. Где /Users/mirocow/vagrant/vm.box является путем до создаваемой коробки.
$ rm/Users/mirocow/vagrant/vm.box $ vagrant package --base vm --output/Users/mirocow/vagrant/vm.box
Запуск локальных коробок
$ vagrant box add foo-box /path/to/vagrant-box.box $ vagrant init foo-box $ vagrant up