Chef-solo ssl warning al aprovisionar
vagrant (3)
Esta advertencia fue introducida en Chef 11.12.0. Ver las notas de la versión para más detalles:
Cuando
ssl_verify_mode
se establece en:verify_none
, Chef imprimirá una advertencia. Utilice laknife ssl check
para probar la conectividad SSL y luego agreguessl_verify_mode :verify_peer
a su archivo de configuración para corregir la advertencia. Aunque:verify_none
es actualmente el predeterminado, esto se modificará en una versión futura, por lo que se recomienda a los usuarios que sean proactivos al probar y actualizar su configuración de SSL.
Para corregir esta advertencia en Vagrant, debe modificar el archivo de configuración solo.rb
que crea en la máquina virtual. Con Vagrant puedes usar la opción custom_config_path
para eso.
Así puede enmendar su archivo Vagrant de esta manera:
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
Esto hace que Vagrant incluya el contenido del archivo local Vagrantfile.chef
en el solo.rb generado, por lo tanto, el archivo debe estar presente en su sistema host, no en la VM.
Luego, cree un nuevo archivo Vagrantfile.chef
en el directorio donde también guarda su Vagrantfile con el siguiente contenido:
Chef::Config.ssl_verify_mode = :verify_peer
La siguiente ejecución de vagrant provision
ya no debería imprimir la advertencia.
Cuando uso vagrant y chef como aprovisionador, tengo esta advertencia:
[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
```
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Sería bueno saber qué tipo de configuraciones necesita el chef en Vagrantfile para solucionar este problema.
Sé que la pregunta original era sobre Vagrant, pero para las personas que usan la gema knife-solo
y encuentran este error, solo agregue la siguiente línea a .chef/knife.rb
:
ssl_verify_mode :verify_peer
La gema knife-solo
tomará ese valor y lo pondrá en el archivo solo.rb
que se carga en el servidor, que es el archivo de configuración principal pasado a chef-solo
.
Tuve este problema cuando trabajaba con Test-Kitchen.
Si ese también es su caso, tenga en cuenta que este valor también se puede configurar directamente dentro de .kitchen.yml
.
Si su bloque de aprovisionamiento estándar se ve así:
provisioner:
name: chef_solo
solo puede agregar la clave solo_rb
con la opción ssl_verify_mode
:
provisioner:
name: chef_solo
solo_rb:
ssl_verify_mode: verify_peer
y el solo.rb generado tendrá esta opción establecida.