Команда одиночного приготовления ножа не работает должным образом

Итак, я запускаю Chef-Solo на Ubuntu 12.04 с ОС Linux на puTTy. Моя конечная цель — развернуть экземпляр Islandora/Drupal с помощью Chef. Однако на данный момент я не добился больших успехов. Вот команды, которые я запускал:

knife solo prepare [user name]@[server name]

который дает мне этот вывод:

WARNING: No knife configuration file found
Bootstrapping Chef...
Enter the password for biblio@giada:
% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                             Dload  Upload   Total   Spent    Left  Speed
100 15934  100 15934    0     0  47449      0 --:--:-- --:--:-- --:--:-- 70504

Downloading Chef 11.12.2 for ubuntu...
downloading https://www.opscode.com      /chef/metadata?v=11.12.2&prerelease=false&
nightlies=false&p=ubuntu&pv=12.04&m=x86_64
  to file /tmp/install.sh.14381/metadata.txt
trying wget...
url     https://opscode-omnibus-packages.s3.amazonaws.com/ubuntu/12.04/x86_64/chef_11.12.2-1_amd64.deb
md5     cedd8a2df60a706e51f58adf8441971b
sha256  af53e7ef602be6228dcbf68298e2613d3f37eb061975992abc6cd2d318e4a0c0
downloaded metadata file looks valid...
     downloading https://opscode-omnibus-packages.s3.amazonaws.com/ubuntu/12.0/x86_64/chef_11.12.2-1_amd64.deb
  to file /tmp/install.sh.14381/chef_11.12.2-1_amd64.deb
trying wget...
Comparing checksum with sha256sum...
Installing Chef 11.12.2
installing with dpkg...
(Reading database ... 72031 files and directories currently installed.)
Preparing to replace chef 11.12.2-1 (using .../chef_11.12.2-1_amd64.deb) ...
Unpacking replacement chef ...
Setting up chef (11.12.2-1) ...
Thank you for installing Chef!
Generating node config 'nodes/giada.json'...

Затем, когда я запускаю это:

knife solo cook [user name]@[server name]

... Я получаю это:

WARNING: No knife configuration file found
WARNING: solo.rb found, but since knife-solo v0.3.0 it is not used any more
WARNING: Please read the upgrade instructions: https://github.com/matschaffer/knife-solo/wiki/Upgrading-to-0.3.0
Running Chef on [server name]...
Checking Chef version...
Enter the password for [user name]@[server name]:
Uploading the kitchen...
[user name]@[server name]'s password:
WARNING: Local cookbook_path '/etc/chef/cookbooks' does not exist
[user name]@[server name]'s password:
[user name]@[server name]'s password:
WARNING: Local role_path './roles' does not exist
WARNING: Local data_bag_path './data_bags' does not exist
WARNING: Local environment_path './environments' does not exist
Generating solo config...
[user name]@[server name]'s password:
Running Chef...

[2014-05-01T12:56:51-04:00] WARN:
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
SSL validation of HTTPS requests is disabled. HTTPS connections are still
encrypted, but chef is not able to detect forged replies or man in the middle
attacks.

To fix this issue add an entry like this to your configuration file:

```
  # Verify all HTTPS connections (recommended)
  ssl_verify_mode :verify_peer

   # OR, Verify only connections to chef-server
   verify_api_cert true
 ```

To check your SSL configuration, or troubleshoot errors, you can use the
`knife ssl check` command like so:

```
   knife ssl check -c /home/biblio/chef-solo/solo.rb
 ```

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

Starting Chef Client, version 11.12.2
Compiling Cookbooks...
Converging 0 resources

Running handlers:
Running handlers complete

Chef Client finished, 0/0 resources updated in 2.278793398 seconds

В ситуации, описанной выше, я работаю как root. Все там, где должно быть согласно документации от Opscode. Но, на мой взгляд, эти предупреждения говорят мне, что что-то не так. Может ли кто-нибудь сказать мне, что мне не хватает? Спасибо!


person Stephen Fians    schedule 01.05.2014    source источник


Ответы (2)


В папке, где вы запускаете команду knife solo, вам нужно иметь еще одну скрытую папку с файлом конфигурации ножа. он же

.chef/knife.rb — здесь должны быть указаны настройки вашего ножа. Вот мой.

   cookbook_path    "cookbooks"
   node_path        "nodes"
   role_path        "roles"

   knife[:berkshelf_path]          = "cookbooks"
   knife[:aws_access_key_id]       = "#{ENV['AWS_ACCESS_KEY_ID']}"
   knife[:aws_secret_access_key]   = "#{ENV['AWS_SECRET_ACCESS_KEY']}"
   knife[:region]                  = "#{ENV['EC2_REGION']}"
   knife[:availability_zone]       = "#{ENV['EC2_AVAILABILITY_ZONE']}"
   knife[:ssh_user]                = "ubuntu"
   knife[:groups]                  = "default"
   knife[:solo]                    = true

Как видите, я использую переменные среды (ENV), поэтому я проверяю это в системе контроля версий, не раскрывая секреты. Чтобы сделать это в OSX или Linux, вам нужно отредактировать файл ~/.bash_profile и для каждой из переменных;

   export AWS_ACCESS_KEY_ID=REAL_KEY_GOES_HERE

Затем создайте его, запустив source ~/.bash_profile.

Также полезным аргументом для подготовки является --run-list 'role[имя-роли]', так что он будет автоматически использовать правильную роль, когда вы запускаете cook.

person comjf    schedule 07.05.2014

Однажды я получил эту ошибку, потому что мой dna.json был неправильным. Какое-то несоответствие двойным кавычкам. поэтому сначала я попытался сделать то, что они предлагают (добавив ssl_verify_mode :verify_peer в файл конфигурации), что не имело никакого значения; тогда я знал, что это сообщение просто вводит в заблуждение.

person max    schedule 23.06.2014