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_zerokitchen driver create
Используйте подкоманду 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 для проверки качества «от края до края» кулинарной книги. Используйте подкоманды 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 для проверки качества «от края до края» кулинарной книги. Используйте подкоманды 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/