Spec-Zone.ru › Chef 18

kitchen (исполняемый файл)

[править на GitHub]

kitchen — это командная утилита для Test Kitchen, инструмента интеграционного тестирования, поддерживаемого компанией Chef Software. Test Kitchen выполняет тесты против любой комбинации платформ с использованием любой комбинации наборов тестов. Однако каждый тест выполняется против конкретного экземпляра, который состоит из одной платформы и одного набора критериев тестирования. Это позволяет запускать каждый тест изолированно, гарантируя, что различные поведения в одном и том же кодовом основании могут быть тщательно протестированы до внесения этих изменений в производство.

Примечание

Любая подкоманда Test Kitchen, которая не указывает экземпляр, будет применена ко всем экземплярам.

Примечание

Эта тема описывает функциональность, которая поставляется с Chef Workstation. Для получения дополнительной информации о Test Kitchen см. https://kitchen.ci/docs/getting-started/introduction/.

Нечеткое соответствие

Нечеткое соответствие может использоваться со всеми командами, поскольку 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/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API