kitchen (исполняемый файл)
kitchen — это командная утилита для Test Kitchen, инструмента интеграционного тестирования, поддерживаемого компанией Chef Software. Test Kitchen выполняет тесты против любой комбинации платформ с использованием любой комбинации наборов тестов. Однако каждый тест выполняется против конкретного экземпляра, который состоит из одной платформы и одного набора критериев тестирования. Это позволяет запускать каждый тест изолированно, гарантируя, что различные поведения в одном и том же кодовом основании могут быть тщательно протестированы до внесения этих изменений в производство.
Примечание
Любая подкоманда Test Kitchen, которая не указывает экземпляр, будет применена ко всем экземплярам.
Примечание
Нечеткое соответствие
Нечеткое соответствие может использоваться со всеми командами, поскольку kitchen использует регулярные выражения для поиска. Например, полностью квалифицированное имя:
kitchen list client-ubuntu-1804 --bare
вернет что-то подобное:
client-ubuntu-1804
Частичное имя:
kitchen list ubuntu --bare
вернет что-то подобное:
client-ubuntu-1804
server-ubuntu-1804
Короткий строковый:
kitchen list ub --bare
вернет что-то подобное:
client-ubuntu-1804
server-ubuntu-1804
Целое число:
kitchen list 4 --bare
вернет что-то подобное:
client-ubuntu-1804
server-ubuntu-1804
Регулярное выражение Ruby в одинарных кавычках:
kitchen list '^cli.*-65$' --bare
вернет что-то подобное:
client-centos-65
kitchen converge
Используйте подкоманду converge для слияния одного (или нескольких) экземпляров. Экземпляры основаны на списке платформ в файле kitchen.yml. Этот процесс установит Chef Infra Client на экземпляре с помощью установщика Chef, загрузит файлы кулинарной книги и минимальную конфигурацию на экземпляр, а затем запустит выполнение Chef Infra Client с использованием списка запусков и атрибутов, указанных в файле kitchen.yml.
Test Kitchen пропустит ненужные шаги. Например, если Chef Infra Client уже установлен на экземпляре, Test Kitchen не переустановит Chef Infra Client. Однако Test Kitchen всегда загружает файлы кулинарной книги и минимальную конфигурацию. Это гарантирует, что тестирование кулинарной книги выполняется правильно.
Test Kitchen использует следующие коды выхода:
-
0означает, что операция выполнена успешно - Любое ненулевое значение означает, что по крайней мере одна часть операции не выполнена успешно
В общем случае используйте подкоманду test для проверки качества работы кулинарной книги от начала до конца. Используйте подкоманды converge и verify во время обычной ежедневной разработки кулинарной книги.
Синтаксис
У этой подкоманды следующий синтаксис:
kitchen converge PLATFORMS (options)
Параметры
У этой подкоманды следующие параметры:
-
-c,--concurrency -
Количество разрешенных одновременных подключений. По умолчанию:
9999(все экземпляры). -
-l,--log-level -
Уровень ведения журнала, который будет храниться в файле журнала. Доступные варианты (в порядке приоритета):
debug,info,warn,error, иfatal. По умолчанию:info. PLATFORMS-
Запуск Test Kitchen для одной или нескольких платформ, указанных в файле kitchen.yml. Используйте
allдля запуска Test Kitchen для всех платформ. Используйте регулярное выражение Ruby для объединения двух или более платформ в один запуск.Например, если файл kitchen.yml содержит следующее:
- name: centos-7 - name: centos-8 - name: fedora-latest - name: ubuntu-1604 - name: ubuntu-1804то регулярное выражение, подобное
(04|7), запустит Test Kitchen дляcentos-7,ubuntu-1604, иubuntu-1804. Регулярное выражение, подобное(ubuntu)запустит Test Kitchen дляubuntu-1604иubuntu-1804. Регулярное выражение, подобное(fedora)запустит Test Kitchen только дляfedora-latest. По умолчанию:all.
Примеры
Слияние экземпляра CentOS по умолчанию
Для слияния экземпляра CentOS по умолчанию выполните следующее:
kitchen converge default-centos-7
Chef Infra Client загружается при первом запуске этой команды. Вывод команды примерно такой:
-----> Starting Kitchen (v1.4.2)
-----> Converging <default-centos-7>...
Preparing files for transfer
Preparing cookbooks from project directory
Removing non-cookbook files before transfer
Preparing nodes
-----> Installing Chef Omnibus (true)
downloading https://www.chef.io/chef/install.sh
to file /tmp/install.sh
...
Downloading Chef ...
Installing Chef ...
Thank you for installing Chef!
Transferring files to <default-centos-7>
[2014-06-27T18:41:04+00:00] INFO: Forking chef instance to converge...
Starting Chef Client, version 12.4.1
[2014-06-27T18:45:18+00:00] INFO: *** Chef 12.4.1 ***
[2014-06-27T18:45:18+00:00] INFO: Chef-client pid: 3226
[2014-06-27T18:45:25+00:00] INFO: Setting the run_list to ["recipe[chef-repo::default]"] from CLI options
[2014-06-27T18:45:25+00:00] INFO: Run List is [recipe[chef-repo::default]]
[2014-06-27T18:45:25+00:00] INFO: Run List expands to [chef-repo::default]
[2014-06-27T18:45:25+00:00] INFO: Starting Chef Run for default-centos-7
[2014-06-27T18:45:25+00:00] INFO: Running start handlers
[2014-06-27T18:42:40+00:00] INFO: Start handlers complete.
Compiling Cookbooks...
Converging 1 resources
Recipe: chef-repo::default
* file[/root/test.txt] action create... INFO: Processing file[/root/test.txt]
action create (chef-repo::default line 10)
[2014-06-27T18:42:40+00:00] INFO: file[/root/test.txt] created file /root/test.txt
- create new file /root/test.txt... INFO: file[/root/test.txt] updated file contents /root/test.txt
- update content in file /root/test.txt from none to d9c88f
--- /root/test.txt 2014-06-27 18:42:40.695889276 +0000
+++ /tmp/.test.txt20140627-2810-1xdx98p 2014-06-27 18:42:40.695889276 +0000
@@ -1 +1,2 @@
+This file created by Chef!
- restore selinux security context
[2014-06-27T18:42:40+00:00] INFO: Chef Run complete in 0.168252291 seconds
Running handlers:
[2014-06-27T18:42:40+00:00] INFO: Running report handlers
Running handlers complete
[2014-06-27T18:42:40+00:00] INFO: Report handlers complete
Chef Client finished, 1/1 resources updated in 7.152725504 seconds
Finished converging <default-centos-7> (0m8.43s).
-----> Kitchen is finished. (0m15.96s)
Слияние экземпляра Ubuntu по умолчанию
Для слияния экземпляра Ubuntu по умолчанию выполните следующее:
kitchen converge default-ubuntu-1804
Chef Infra Client загружается при первом запуске этой команды. Вывод команды примерно такой:
-----> Starting Kitchen (v1.4.2)
-----> Converging <default-ubuntu-1804>...
Preparing files for transfer
Preparing cookbooks from project directory
Removing non-cookbook files before transfer
Preparing nodes
-----> Installing Chef Omnibus (true)
downloading https://www.chef.io/chef/install.sh
to file /tmp/install.sh
...
Downloading Chef ...
Installing Chef ...
Thank you for installing Chef!
Transferring files to <default-ubuntu-1804>
[2014-06-27T18:48:01+00:00] INFO: Forking chef instance to converge...
Starting Chef Client, version 12.4.1
[2014-06-27T18:48:01+00:00] INFO: *** Chef 12.4.1 ***
[2014-06-27T18:48:01+00:00] INFO: Chef-client pid: 1246
[2014-06-27T18:48:03+00:00] INFO: Setting the run_list to ["recipe[chef-repo::default]"] from CLI options
[2014-06-27T18:48:03+00:00] INFO: Run List is [recipe[chef-repo::default]]
[2014-06-27T18:48:03+00:00] INFO: Run List expands to [chef-repo::default]
[2014-06-27T18:48:03+00:00] INFO: Starting Chef Run for default-ubuntu-1804
[2014-06-27T18:48:03+00:00] INFO: Running start handlers
[2014-06-27T18:48:03+00:00] INFO: Start handlers complete.
Compiling Cookbooks...
Converging 1 resources
Recipe: chef-repo::default
* file[/home/vagrant/test.txt] action create... INFO: Processing file[/home/vagrant/test.txt]
action create (chef-repo::default line 10)
[2014-06-27T18:48:03+00:00] INFO: file[/home/vagrant/test.txt] created file /home/vagrant/test.txt
- create new file /home/vagrant/test.txt... INFO: file[/home/vagrant/test.txt] updated file contents /home/vagrant/test.txt
- update content in file /home/vagrant/test.txt from none to d9c88f
--- /home/vagrant/test.txt 2014-06-27 18:48:03.233096345 +0000
+++ /tmp/.test.txt20140627-1246-178u9dg 2014-06-27 18:48:03.233096345 +0000
@@ -1 +1,2 @@
+This file created by Chef!
[2014-06-27T18:48:03+00:00] INFO: Chef Run complete in 0.015439954 seconds
Running handlers:
[2014-06-27T18:48:03+00:00] INFO: Running report handlers
Running handlers complete
[2014-06-27T18:48:03+00:00] INFO: Report handlers complete
Chef Client finished, 1/1 resources updated in 1.955915841 seconds
Finished converging <default-ubuntu-1804> (0m15.67s).
-----> Kitchen is finished. (0m15.96s)
kitchen create
Используйте подкоманду create для создания одного (или нескольких) экземпляров. Экземпляры основаны на списке платформ и наборов в файле kitchen.yml.
Синтаксис
У этой подкоманды следующий синтаксис:
kitchen create PLATFORMS (options)
Параметры
У этой подкоманды следующие параметры:
-
-c,--concurrency -
Количество разрешенных одновременных подключений. По умолчанию:
9999(все экземпляры). -
-l,--log-level -
Уровень ведения журнала, который будет храниться в файле журнала. Доступные варианты (в порядке приоритета):
debug,info,warn,error, иfatal. По умолчанию:info. PLATFORMS-
Запуск Test Kitchen для одной или нескольких платформ, указанных в файле kitchen.yml. Используйте
allдля запуска Test Kitchen для всех платформ. Используйте регулярное выражение Ruby для объединения двух или более платформ в один запуск.Например, если файл kitchen.yml содержит следующее:
- name: centos-7 - name: centos-8 - name: fedora-latest - name: ubuntu-1604 - name: ubuntu-1804то регулярное выражение, подобное
(04|7), запустит Test Kitchen дляcentos-7,ubuntu-1604, иubuntu-1804. Регулярное выражение, подобное(ubuntu)запустит Test Kitchen дляubuntu-1604иubuntu-1804. Регулярное выражение, подобное(fedora)запустит Test Kitchen только дляfedora-latest. По умолчанию:all.
Примеры
Создание экземпляра CentOS по умолчанию
Для создания экземпляра CentOS по умолчанию выполните следующее:
kitchen create default-centos-7
CentOS загружается при первом запуске этой команды, после чего запускается Vagrant. (Это может занять несколько минут.)
Вывод команды примерно такой:
-----> Starting Kitchen (v1.4.2)
-----> Creating <default-centos-7>...
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Box 'opscode-centos-7' could not be found. Attempting to find and install...
default: Box Provider: virtualbox
default: Box Version: >= 0
==> default: Adding box 'opscode-centos-7' (v0) for provider: virtualbox
default: Downloading: https://opscode-vm-bento.s3.amazonaws.com/vagrant/virtualbox/opscode_centos-6.5_chef-provisionerless.box
==> default: Successfully added box 'opscode-centos-7' (v0) for 'virtualbox'!
==> default: Importing base box 'opscode-centos-7'...
==> default: Matching MAC address for NAT networking...
==> default: Setting the name of the VM: default-centos-7_default_1403650129063_53517
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
default: Adapter 1: nat
==> default: Forwarding ports...
default: 22 => 2222 (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
default: SSH address: 127.0.0.1:2222
default: SSH username: vagrant
default: SSH auth method: private key
default: Warning: Connection timeout. Retrying...
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
==> default: Setting hostname...
==> default: Machine not provisioning because `--no-provision` is specified.
Vagrant instance <default-centos-7> created.
Finished creating <default-centos-7> (4m0.59s).
-----> Kitchen is finished. (11m29.76s)
Создание экземпляра Ubuntu по умолчанию
Для создания экземпляра Ubuntu по умолчанию выполните следующее:
kitchen create default-ubuntu-1804
Ubuntu загружается при первом запуске этой команды, после чего запускается Vagrant. (Это может занять несколько минут.)
Вывод команды примерно такой:
-----> Starting Kitchen (v1.4.2)
-----> Creating <default-ubuntu-1804>...
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Box 'opscode-ubuntu-12.04' could not be found. Attempting to find and install...
default: Box Provider: virtualbox
default: Box Version: >= 0
==> default: Adding box 'opscode-ubuntu-12.04' (v0) for provider: virtualbox
default: Downloading: https://opscode-vm-bento.s3.amazonaws.com/vagrant/virtualbox/opscode_ubuntu-12.04_chef-provisionerless.box
==> default: Successfully added box 'opscode-ubuntu-12.04' (v0) for 'virtualbox'!
==> default: Importing base box 'opscode-ubuntu-12.04'...
==> default: Matching MAC address for NAT networking...
==> default: Setting the name of the VM: default-ubuntu-1804_default_1403651715173_54200
==> default: Fixed port collision for 22 => 2222. Now on port 2200.
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
default: Adapter 1: nat
==> default: Forwarding ports...
default: 22 => 2200 (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
default: SSH username: vagrant
default: SSH auth method: private key
default: Warning: Connection timeout. Retrying...
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
==> default: Setting hostname...
==> default: Machine not provisioning because `--no-provision` is specified.
Vagrant instance <default-ubuntu-1804> created.
Finished creating <default-ubuntu-1804> (4m1.59s).
-----> Kitchen is finished. (10m58.24s)
kitchen destroy
Используйте подкоманду destroy для удаления одного (или нескольких) экземпляров. Экземпляры основаны на списке платформ и наборов в файле kitchen.yml.
Синтаксис
У этой подкоманды следующий синтаксис:
kitchen destroy PLATFORMS (options)
Параметры
У этой подкоманды следующие параметры:
-
-c,--concurrency -
Количество разрешенных одновременных подключений. По умолчанию:
9999(все экземпляры). -
-l,--log-level -
Уровень ведения журнала, который будет храниться в файле журнала. Доступные варианты (в порядке приоритета):
debug,info,warn,error, иfatal. По умолчанию:info. PLATFORMS-
Запуск Test Kitchen для одной или нескольких платформ, указанных в файле kitchen.yml. Используйте
allдля запуска Test Kitchen для всех платформ. Используйте регулярное выражение Ruby для объединения двух или более платформ в один запуск.Например, если файл kitchen.yml содержит следующее:
- name: centos-7 - name: centos-8 - name: fedora-latest - name: ubuntu-1604 - name: ubuntu-1804то регулярное выражение, подобное
(04|7), запустит Test Kitchen дляcentos-7,ubuntu-1604, иubuntu-1804. Регулярное выражение, подобное(ubuntu)запустит Test Kitchen дляubuntu-1604иubuntu-1804. Регулярное выражение, подобное(fedora)запустит Test Kitchen только дляfedora-latest. По умолчанию:all.
Примеры
Нет.
kitchen diagnose
Используйте подкоманду diagnose для отображения вычисленной диагностической конфигурации для одного (или нескольких) экземпляров. Эта подкоманда сделает все неявные параметры конфигурации явными, так как она выводит все данные конфигурации в формате YAML.
Синтаксис
У этой подкоманды следующий синтаксис:
kitchen diagnose PLATFORMS (options)
Параметры
У этой подкоманды следующие параметры:
--all-
Включить все диагностические данные. По умолчанию:
false. --instances-
Включить диагностические данные экземпляра. По умолчанию:
true. -
-l,--log-level -
Уровень ведения журнала, который будет храниться в файле журнала. Доступные варианты (в порядке приоритета):
debug,info,warn,error, иfatal. По умолчанию:info. --loader-
Включить диагностические данные загрузчика данных. По умолчанию:
false. PLATFORMS-
Запустить Test Kitchen на одной или нескольких платформах, перечисленных в файле kitchen.yml. Используйте
allдля запуска Test Kitchen на всех платформах. Используйте регулярное выражение Ruby для группирования двух или более платформ в один запуск.Например, если файл kitchen.yml содержит следующее:
- name: centos-7 - name: centos-8 - name: fedora-latest - name: ubuntu-1604 - name: ubuntu-1804то регулярное выражение, такое как
(04|7)запустит Test Kitchen дляcentos-7,ubuntu-1604, иubuntu-1804. Регулярное выражение, такое как(ubuntu)запустит Test Kitchen дляubuntu-1604иubuntu-1804. Регулярное выражение, такое как(fedora)запустит Test Kitchen только дляfedora-latest. По умолчанию:all.
Примеры
Диагностика экземпляра
Используйте параметр --loader для включения диагностических данных в выходные данные:
loader:combined_config:filename:raw_data:driver:name:vagrantsocket:tcp://192.0.2.0:1234provisioner:#...или:
---loader:global_config:filename:"/Users/username/.kitchen/config.yml"raw_data:#...project_config:filename:"/Users/username/Projects/sandbox/path/to/kitchen.yml"raw_data:#...local_config:Диагностика экземпляра с помощью параметра –instances
Используйте параметр --instances для отслеживания экземпляров, которые основаны на списке платформ и наборов в файле kitchen.yml:
---instancesdefault-ubuntu-1804busser:root_path:/tmp/busserruby_bindir:/opt/chef/embedded/binsudo:trueДиагностика экземпляра с помощью параметра –loader
Эта команда возвращает данные в формате YAML:
---timestamp:2014-04-15 18:59:58.460470000Zkitchen-version:1.2.2.devinstances:default-ubuntu-1804# ...default-centos-8# ...При использовании Test Kitchen для тестирования кулинарных книг Test Kitchen будет отслеживать данные состояния:
---instances:default-ubuntu-1804state_file:hostname:192.0.2.0last_action:createport:'22'ssh_key:"/Users/username/path/to/key"username:vagrantdefault-centos-65# ...и будет отслеживать информацию, которая была предоставлена драйверу:
---instances:default-ubuntu-1804driver:box:opscode-ubuntu-18.04box_url:https://URL/path/to/filename.boxkitchen_root:"/Users/username/Projects/sandbox/"и будет отслеживать информацию о провайдерах:
---instances:default-ubuntu-1804provisioner:attributes:{}chef_omnibus_url:https://www.chef.io/chef/install.shclients_path:name:chef_zeroСоздание драйвера kitchen
Используйте подкоманду driver create для создания нового драйвера Test Kitchen в проекте RubyGems.
Синтаксис
Эта подкоманда имеет следующий синтаксис:
kitchen driver create NAME
Параметры
Эта подкоманда имеет следующие параметры:
-
-l,--license -
Лицензия для файла RubyGems. Возможные значения:
apachev2,lgplv3,mit, иreserved. По умолчанию:apachev2.
Примеры
Нет.
kitchen exec
Используйте подкоманду exec для выполнения команды на удаленном экземпляре.
Синтаксис
Эта подкоманда имеет следующий синтаксис:
kitchen exec PLATFORMS (options)
Параметры
Эта подкоманда имеет следующие параметры:
-c REMOTE_COMMAND-
Используется для указания удаленной команды, которая будет выполнена через SSH.
PLATFORMS-
Запустить Test Kitchen на одной или нескольких платформах, перечисленных в файле kitchen.yml. Используйте
allдля запуска Test Kitchen на всех платформах. Используйте регулярное выражение Ruby для группирования двух или более платформ в один запуск.Например, если файл kitchen.yml содержит следующее:
- name: centos-7 - name: centos-8 - name: fedora-latest - name: ubuntu-1604 - name: ubuntu-1804то регулярное выражение, такое как
(04|7)запустит Test Kitchen дляcentos-7,ubuntu-1604, иubuntu-1804. Регулярное выражение, такое как(ubuntu)запустит Test Kitchen дляubuntu-1604иubuntu-1804. Регулярное выражение, такое как(fedora)запустит Test Kitchen только дляfedora-latest. По умолчанию:all.
Примеры
Нет.
kitchen init
Используйте подкоманду init для создания начальной среды Test Kitchen, включая:
- Создание файла kitchen.yml
- Добавление Test Kitchen в файл RubyGems, .gitignore и .thor
- Создание каталога
test/integration/default
Синтаксис
Эта подкоманда имеет следующий синтаксис:
kitchen init
Параметры
Эта подкоманда имеет следующие параметры:
--create_gemfile-
Создать файл RubyGems, если он еще не существует. По умолчанию:
false. -
-D,--driver -
Добавить одного (или нескольких) драйверов Test Kitchen в файл RubyGems. По умолчанию:
kitchen-vagrant. -
-l,--log-level -
Уровень ведения журнала, который будет храниться в файле журнала. Доступные варианты (в порядке приоритета):
debug,info,warn,error, иfatal. По умолчанию:info. -
-P,--provisioner -
По умолчанию провайдер, который используется Test Kitchen.
PLATFORMS-
Запустить Test Kitchen на одной или нескольких платформах, перечисленных в файле kitchen.yml. Используйте
allдля запуска Test Kitchen на всех платформах. Используйте регулярное выражение Ruby для группирования двух или более платформ в один запуск.Например, если файл kitchen.yml содержит следующее:
- name: centos-7 - name: centos-8 - name: fedora-latest - name: ubuntu-1604 - name: ubuntu-1804то регулярное выражение, такое как
(04|7)запустит Test Kitchen дляcentos-7,ubuntu-1604, иubuntu-1804. Регулярное выражение, такое как(ubuntu)запустит Test Kitchen дляubuntu-1604иubuntu-1804. Регулярное выражение, такое как(fedora)запустит Test Kitchen только дляfedora-latest. По умолчанию:all.
Примеры
Создание среды Test Kitchen
kitchen init --driver=kitchen-vagrant
вернет что-то подобное:
create kitchen.yml
create test/integration/default
create .gitignore
append .gitignore
append .gitignore
run gem install kitchen-vagrant from "."
Fetching: kitchen-vagrant-0.12.0.gem (100%)
Successfully installed kitchen-vagrant-0.12.0
1 gem installed
kitchen list
Используйте подкоманду list для просмотра списка экземпляров. Экземпляры основаны на списке платформ в файле kitchen.yml. Test Kitchen автоматически назначает имена экземплярам, объединяя имя набора и имя платформы. Например, если набор называется default, а платформа называется ubuntu-18.04, то экземпляр будет default-ubuntu-1804. Это гарантирует, что у экземпляров Test Kitchen есть безопасные записи DNS и имени хоста.
Синтаксис
Эта подкоманда имеет следующий синтаксис:
kitchen list PLATFORMS (options)
Параметры
Эта подкоманда имеет следующие параметры:
-
-b,--bare -
Вывести имя каждого экземпляра, по одному экземпляру на строку. По умолчанию:
false. -
-l,--log-level -
Уровень ведения журнала, который будет храниться в файле журнала. Доступные варианты (в порядке приоритета):
debug,info,warn,error, иfatal. По умолчанию:info. PLATFORMS-
Запустить Test Kitchen на одной или нескольких платформах, перечисленных в файле kitchen.yml. Используйте
allдля запуска Test Kitchen на всех платформах. Используйте регулярное выражение Ruby для группирования двух или более платформ в один запуск.Например, если файл kitchen.yml содержит следующее:
- name: centos-7 - name: centos-8 - name: fedora-latest - name: ubuntu-1604 - name: ubuntu-1804то регулярное выражение, такое как
(04|7)запустит Test Kitchen дляcentos-7,ubuntu-1604, иubuntu-1804. Регулярное выражение, такое как(ubuntu)запустит Test Kitchen дляubuntu-1604иubuntu-1804. Регулярное выражение, такое как(fedora)запустит Test Kitchen только дляfedora-latest. По умолчанию:all.
Примеры
Просмотр списка экземпляров Test Kitchen
Чтобы просмотреть список экземпляров Test Kitchen:
kitchen list
Список будет возвращен, примерно так:
Instance Driver Provisioner Last Action
default-ubuntu-18.04 vagrant chef_zero created
default-centos-8 vagrant chef_zero created
или:
Instance Driver Provisioner Last Action
default-ubuntu-18.04 vagrant chef_zero converged
default-centos-8 vagrant chef_zero created
или:
Instance Driver Provisioner Last Action
default-ubuntu-18.04 vagrant chef_zero verified
default-centos-8 vagrant chef_zero created
или:
Instance Driver Provisioner Last Action
default-ubuntu-18.04 vagrant chef_zero created
default-centos-8 vagrant chef_zero <not created>
или, если определено несколько наборов, например, default и test:
Instance Driver Provisioner Last Action
default-ubuntu-18.04 vagrant chef_zero <not created>
default-centos-8 vagrant chef_zero <not created>
test-ubuntu-18.04 vagrant chef_zero <not created>
test-centos-8 vagrant chef_zero <not created>
kitchen login
Используйте подкоманду login для входа в единственный экземпляр. Экземпляры основаны на списке платформ и наборов в файле kitchen.yml. После успешного входа в систему экземпляром можно взаимодействовать так же, как и с любой другой виртуальной машиной, включая добавление или удаление пакетов, запуск или остановку служб и т. д. Это среда песочницы. Внесите необходимые изменения, чтобы улучшить охват тестирования кулинарных книг.
Синтаксис
Эта подкоманда имеет следующий синтаксис:
kitchen login PLATFORM (options)
Параметры
Эта подкоманда имеет следующие параметры:
-
-l,--log-level -
Уровень ведения журнала, который будет храниться в файле журнала. Варианты (в порядке приоритета):
debug,info,warn,error, иfatal. По умолчанию:info. PLATFORMS-
Запуск Test Kitchen для одной или нескольких платформ, перечисленных в файле kitchen.yml. Используйте
allдля запуска Test Kitchen для всех платформ. Используйте регулярное выражение Ruby для объединения двух или более платформ в один запуск.Например, если файл kitchen.yml содержит следующее:
- name: centos-7 - name: centos-8 - name: fedora-latest - name: ubuntu-1604 - name: ubuntu-1804то регулярное выражение, такое как
(04|7), запустит Test Kitchen дляcentos-7,ubuntu-1604, иubuntu-1804. Регулярное выражение, такое как(ubuntu), запустит Test Kitchen дляubuntu-1604иubuntu-1804. Регулярное выражение, такое как(fedora), запустит Test Kitchen только дляfedora-latest. По умолчанию:all.
Примеры
Для входа в систему на стандартной виртуальной машине Ubuntu выполните следующую команду:
kitchen login default-ubuntu-1804
что вернёт результат, подобный следующему:
Welcome to Ubuntu 18.04.2 LTS (GNU/Linux 4.15.0-51-generic x86_64)
Last login: Wed Jul 3 18:21:09 2019 from 10.0.2.2
vagrant@default-ubuntu-1804:~$
Настройка kitchen
Используйте подкоманду setup для настройки одной (или нескольких) виртуальных машин. Виртуальные машины основаны на списке платформ в файле kitchen.yml.
Синтаксис
Эта подкоманда имеет следующий синтаксис:
kitchen setup PLATFORMS (options)
Параметры
Эта подкоманда имеет следующие параметры:
-
-c,--concurrency -
Количество разрешенных одновременных подключений. По умолчанию:
9999(все виртуальные машины). -
-l,--log-level -
Уровень ведения журнала, который будет храниться в файле журнала. Варианты (в порядке приоритета):
debug,info,warn,error, иfatal. По умолчанию:info. PLATFORMS-
Запустить Test Kitchen для одной или нескольких платформ, перечисленных в файле kitchen.yml. Используйте
allдля запуска Test Kitchen для всех платформ. Используйте регулярное выражение Ruby для объединения двух или более платформ в один запуск.Например, если файл kitchen.yml содержит следующее:
- name: centos-7 - name: centos-8 - name: fedora-latest - name: ubuntu-1604 - name: ubuntu-1804то регулярное выражение, такое как
(04|7), запустит Test Kitchen дляcentos-7,ubuntu-1604, иubuntu-1804. Регулярное выражение, такое как(ubuntu), запустит Test Kitchen дляubuntu-1604иubuntu-1804. Регулярное выражение, такое как(fedora), запустит Test Kitchen только дляfedora-latest. По умолчанию:all.
Примеры
Нет.
kitchen test
Используйте подкоманду test для тестирования одной (или нескольких) проверенных виртуальных машин. Виртуальные машины основаны на списке платформ и наборов тестов в файле kitchen.yml. Эта подкоманда создаст новую виртуальную машину (очистив предыдущую, если необходимо), сконвертирует её, настроит тестовую среду, проверит виртуальную машину с помощью этой тестовой среды, а затем удалит виртуальную машину.
В общем случае, используйте подкоманду test для проверки качества работы кулинарной книги (cookbook) от начала до конца. Используйте подкоманды converge и verify в повседневной работе по разработке кулинарной книги.
Синтаксис
Эта подкоманда имеет следующий синтаксис:
kitchen test PLATFORMS (options)
Параметры
Эта подкоманда имеет следующие параметры:
--auto-init-
Вызвать команду
initесли kitchen.yml отсутствует. По умолчанию:false. -
-c NUMBER,--concurrency NUMBER -
Количество разрешенных одновременных подключений. Используйте этот параметр для ограничения количества виртуальных машин, которые тестируются одновременно. Например,
--concurrency 6установит это ограничение до шести одновременных виртуальных машин. По умолчанию:9999(все виртуальные машины). -
-d,--destroy -
Стратегия уничтожения, используемая в конце выполнения Test Kitchen. Возможные значения:
always(всегда удалять виртуальные машины),never(никогда не удалять виртуальные машины), илиpassing(удалять только виртуальные машины, которые прошли проверку). По умолчанию:passing. -
-l,--log-level -
Уровень ведения журнала, который будет храниться в файле журнала. Варианты (в порядке приоритета):
debug,info,warn,error, иfatal. По умолчанию:info. PLATFORMS-
Запустить Test Kitchen для одной или нескольких платформ, перечисленных в файле kitchen.yml. Используйте
allдля запуска Test Kitchen для всех платформ. Используйте регулярное выражение Ruby для объединения двух или более платформ в один запуск.Например, если файл kitchen.yml содержит следующее:
- name: centos-7 - name: centos-8 - name: fedora-latest - name: ubuntu-1604 - name: ubuntu-1804то регулярное выражение, такое как
(04|7), запустит Test Kitchen дляcentos-7,ubuntu-1604, иubuntu-1804. Регулярное выражение, такое как(ubuntu), запустит Test Kitchen дляubuntu-1604иubuntu-1804. Регулярное выражение, такое как(fedora), запустит Test Kitchen только дляfedora-latest. По умолчанию:all.
Примеры
Проверка стандартной виртуальной машины Ubuntu
Для проверки стандартной виртуальной машины Ubuntu выполните следующую команду:
kitchen test default-ubuntu-1804
что вернёт результат, подобный следующему:
-----> Starting Kitchen (v2.2.5)
-----> Cleaning up any prior instances of <default-ubuntu-1804>
-----> Destroying <default-ubuntu-1804>...
...
Finished destroying <config-ubuntu-1804> (0m4.92s).
-----> Testing <default-ubuntu-1804>
-----> Creating <default-ubuntu-1804>...
Bringing machine 'default' up with 'virtualbox' provider...
...
Vagrant instance <default-ubuntu-1804> created.
Finished creating <default-ubuntu-1804> (0m34.01s).
-----> Converging <default-ubuntu-1804>...
...
-----> Installing Chef install only if missing package
Downloading https://omnitruck.chef.io/install.sh to file /tmp/install.sh
...
Installing chef
...
Setting up chef (15.1.36-1) ...
Thank you for installing Chef Infra Client! For help getting started visit https://learn.chef.io
...
Starting Chef Infra Client, version 15.1.36
...
Converging 2 resources
Recipe: git::default
* package[git] action install[date/time] INFO: Processing package[git] action install (git::default line 10)
- install version 1:2.3.4.5-6 of package git
* log[log_description] action write[date/time] INFO: Processing log[log_description] action write (git::default line 5)
...
Chef Infra Client finished finished, 2 resources updated
Finished converging <default-ubuntu-1804> (0m45.17s).
-----> Setting up <default-ubuntu-1804>...
Finished setting up <default-ubuntu-1804> (0m0.00s).
-----> Verifying <default-ubuntu-1804>...
...
Package: `git`
✓ should exist
Test Summary: 1 successful, 0 failures, 0 skipped
Finished verifying <default-ubuntu-1804> (0m1.25s).
-----> Destroying <default-ubuntu-1804>...
...
Finished destroying <default-ubuntu-1804> (0m4.68s).
Finished testing <default-ubuntu-1804> (0m57.80s).
Проверка виртуальной машины с использованием параметра –concurrency
Используйте параметр --concurrency для управления количеством виртуальных машин, которые тестируются одновременно на локальной рабочей станции. Значение по умолчанию - проверка всех виртуальных машин, но практическое значение зависит от возможностей локального компьютера. Следующие примеры ограничат количество виртуальных машин до четырёх:
kitchen test --concurrency=4
или:
kitchen test --concurrency 4
или:
kitchen test -c=4
или:
kitchen test -c 4
kitchen verify
Используйте подкоманду verify для проверки одной (или нескольких) виртуальных машин. Виртуальные машины основаны на списке платформ и наборов тестов в файле kitchen.yml.
В общем случае, используйте подкоманду test для проверки качества работы кулинарной книги (cookbook) от начала до конца. Используйте подкоманды converge и verify в повседневной работе по разработке кулинарной книги.
Синтаксис
Эта подкоманда имеет следующий синтаксис:
kitchen verify PLATFORMS (options)
Параметры
Эта подкоманда имеет следующие параметры:
-
-c,--concurrency -
Количество разрешенных одновременных подключений. По умолчанию:
9999(все виртуальные машины). -
-l,--log-level -
Уровень ведения журнала, который будет храниться в файле журнала. Варианты (в порядке приоритета):
debug,info,warn,error, иfatal. По умолчанию:info. PLATFORMS-
Запустить Test Kitchen для одной или нескольких платформ, перечисленных в файле kitchen.yml. Используйте
allдля запуска Test Kitchen для всех платформ. Используйте регулярное выражение Ruby для объединения двух или более платформ в один запуск.Например, если файл kitchen.yml содержит следующее:
- name: centos-7 - name: centos-8 - name: fedora-latest - name: ubuntu-1604 - name: ubuntu-1804то регулярное выражение, такое как
(04|7), запустит Test Kitchen дляcentos-7,ubuntu-1604, иubuntu-1804. Регулярное выражение, такое как(ubuntu), запустит Test Kitchen дляubuntu-1604иubuntu-1804. Регулярное выражение, такое как(fedora), запустит Test Kitchen только дляfedora-latest. По умолчанию:all.
Примеры
Проверка стандартной виртуальной машины Ubuntu
Для проверки стандартной виртуальной машины Ubuntu выполните следующую команду:
kitchen verify default-ubuntu-18.04
что вернёт результат, подобный следующему:
-----> Starting Kitchen (v2.2.5)
-----> Setting up <default-ubuntu-18.04>
Fetching: <name of test tool> (100%)
Successfully installed <name of test tool>
# gems installed
-----> Setting up <name of test tool>
...
-----> Running <name of test tool> test suite
✓ <test result>
2 tests, 0 failures
Finished verifying <default-ubuntu-18.04> (2m1.12s).
-----> Kitchen is finished. (2m3.45s)
echo $?
0
или:
-----> Starting Kitchen (v2.2.5)
-----> Setting up <default-ubuntu-18.04>
Fetching: <name of test tool> (100%)
Successfully installed <name of test tool>
# gems installed
-----> Setting up <name of test tool>
...
-----> Running <name of test tool> test suite
- <test result>
2 tests, 1 failures
... exit code was 1
echo $?
10
kitchen version
Используйте подкоманду version для вывода версии Kitchen.
Синтаксис
Эта подкоманда имеет следующий синтаксис:
kitchen version
Параметры
Эта подкоманда не имеет параметров.
Примеры
Проверка версии Test Kitchen
Для просмотра версии Test Kitchen:
kitchen version
вернёт результат, подобный следующему:
Test Kitchen version 2.2.5
© Chef Software, Inc.
Licensed under the Creative Commons Attribution 3.0 Unported License.
The Chef™ Mark and Chef Logo are either registered trademarks/service marks or trademarks/servicemarks of Chef, in the United States and other countries and are used with Chef Inc's permission.
We are not affiliated with, endorsed or sponsored by Chef Inc.
https://docs.chef.io/workstation/ctl_kitchen/