chef-solo ssl ostrzeżenie podczas provisioning
Kiedy używam vagrant i chef jako provisioner, mam takie Ostrzeżenie:
[web] Chef 11.12.2 Omnibus package is already installed.
[web] Running provisioner: chef_solo...
Generating chef JSON and uploading...
Running chef-solo...
stdin: is not a tty
[2014-04-10T14:48:46+00:00] INFO: Forking chef instance to converge...
[2014-04-10T14:48:46+00: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 /tmp/vagrant-chef-1/solo.rb
```
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Byłoby miło wiedzieć, jakie ustawienia chef wymaga w Vagrantfile, aby rozwiązać ten problem.
3 answers
Ostrzeżenie to zostało wprowadzone w Chef 11.12.0. Szczegóły można znaleźć w Uwagach do wydania :
Gdy
ssl_verify_mode
jest ustawione na:verify_none
, Chef wydrukuje Uwaga. Użyjknife ssl check
, Aby przetestować łączność SSL, a następnie dodajssl_verify_mode :verify_peer
do pliku konfiguracyjnego, aby naprawić Uwaga. Chociaż:verify_none
jest obecnie domyślne, będzie to zmieniono w przyszłym wydaniu, więc użytkownicy są zachęcani do aktywnego działania w Testowanie i aktualizacja ich konfiguracji SSL.
Aby naprawić to Ostrzeżenie w Vagrant musisz zmienić plik konfiguracyjny solo.rb
, który tworzy w maszynie wirtualnej. Z Vagrant możesz użyć custom_config_path
opcja na to.
Możesz więc zmienić swój plik Vagrantfile w następujący sposób:
Vagrant.configure("2") do |config|
config.vm.provision "chef_solo" do |chef|
# the next line is added
chef.custom_config_path = "Vagrantfile.chef"
end
end
To sprawia, że Vagrant włącza zawartość pliku local Vagrantfile.chef
do wygenerowanego solo.rb, plik musi więc być obecny w systemie hosta, a nie w maszynie wirtualnej.
Następnie utwórz nowy plik Vagrantfile.chef
w katalogu, w którym przechowujesz również swój plik Vagrantfile z następująca treść:
Chef::Config.ssl_verify_mode = :verify_peer
Następny bieg vagrant provision
nie powinien już drukować Ostrzeżenia.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-01-27 19:04:14
[5]}miałem ten problem podczas pracy z test-kitchen.
Jeśli tak jest również dla Ciebie, zauważ, że ta wartość może być również skonfigurowana bezpośrednio wewnątrz .kitchen.yml
.
Jeśli twój standardowy blok provisioner wygląda następująco:
provisioner:
name: chef_solo
Możesz po prostu dodać solo_rb
klucz z opcją ssl_verify_mode
:
provisioner:
name: chef_solo
solo_rb:
ssl_verify_mode: verify_peer
I wygenerowane solo.rb będzie miał tę opcję ustawioną.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-04-13 21:00:39
Wiem, że pierwotne pytanie dotyczyło Vagranta, ale dla osób używających klejnotu knife-solo
i napotykających ten błąd, wystarczy dodać następującą linijkę do .chef/knife.rb
:
ssl_verify_mode :verify_peer
Gem knife-solo
pobierze tę wartość i umieści ją w pliku solo.rb
, który zostanie przesłany na serwer, który jest głównym plikiem konfiguracyjnym przekazanym do chef-solo
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-10-07 01:19:36