Hola usuario de nuestra página web, encontramos la respuesta a tu búsqueda, desplázate y la encontrarás un poco más abajo.
Esta página se genera a partir de Código fuente de Chef.Para sugerir un cambio, edite el openssl_x509_certificate.rb archivar y enviar una solicitud de extracción al Repositorio de chef.
Página de referencia de recursos
Utilizar el openssl_x509_certificate recurso para generar certificados x509 con formato PEM, firmados o autofirmados. Si no existe key se especifica, el recurso generará automáticamente una contraseña sin contraseña key con el certificado. Si una CA privada key y se proporcionan el certificado, el certificado se firmará con ellos.
Nota
Este recurso se renombró de openssl_x509 a openssl_x509_certificate. El nombre heredado seguirá funcionando, pero el código del libro de recetas debe actualizarse para el nuevo nombre del recurso.
Nuevo en Chef Infra Client 14.4.
Sintaxis
La sintaxis completa de todas las propiedades que están disponibles para el openssl_x509_certificate recurso es:
openssl_x509_certificate 'name'do ca_cert_file String ca_key_file String ca_key_pass String city String common_name String country String csr_file String email String expire Integer# default value: 365 extensions Hash group String,Integer key_curve String# default value: "prime256v1" key_file String key_length Integer# default value: 2048 key_pass String key_type String# default value: "rsa" mode Integer,String org String org_unit String owner String,Integer path String# default value: 'name' unless specified renew_before_expiry Integer state String subject_alt_name Array action Symbol# defaults to :create if not specifiedend
dónde:
openssl_x509_certificate
es el recurso.name
es el nombre que se le da al bloque de recursos.action
identifica qué pasos tomará Chef Infra Client para llevar el nodo al estado deseado.ca_cert_file
,ca_key_file
,ca_key_pass
,city
,common_name
,country
,csr_file
,email
,expire
,extensions
,group
,key_curve
,key_file
,key_length
,key_pass
,key_type
,mode
,org
,org_unit
,owner
,path
,renew_before_expiry
,state
, ysubject_alt_name
son las propiedades disponibles para este recurso.
Comportamiento
los openssl_x509_certificate recurso tiene las siguientes acciones:
:create
- Defecto. Cree el archivo de certificado.
:nothing
- Este bloque de recursos no actúa a menos que otro recurso lo notifique para que actúe. Una vez notificado, este bloque de recursos se ejecuta inmediatamente o se pone en cola para ejecutarse al final de una ejecución de Chef Infra Client.
Propiedades
los openssl_x509_certificate recurso tiene las siguientes propiedades:
ca_cert_file
- Tipo de rubí: Cuerda
La ruta al certificado CA X509 en el sistema de archivos. Si el
ca_cert_file
se especifica la propiedad, laca_key_file
También se debe especificar la propiedad, el certificado se firmará con ellos.
ca_key_file
- Tipo de rubí: Cuerda
La ruta a la CA privada key en el sistema de archivos. Si el
ca_key_file
se especifica la propiedad, laca_cert_file
También se debe especificar la propiedad, el certificado se firmará con ellos.
ca_key_pass
- Tipo de rubí: Cuerda
La frase de contraseña para CA private keyfrase de contraseña.
city
- Tipo de rubí: Cuerda
Valor para el
L
campo de certificado.
common_name
- Tipo de rubí: Cuerda
Valor para el
CN
campo de certificado.
country
- Tipo de rubí: Cuerda
Valor para el
C
campo de certificado.
csr_file
- Tipo de rubí: Cuerda
La ruta a una solicitud de certificado X509 (CSR) en el sistema de archivos. Si el
csr_file
se especifica la propiedad, el recurso intentará obtener un CSR desde esta ubicación. Si no se encuentra ningún archivo CSR, el recurso generará un certificado autofirmado y se deben especificar los campos del certificado (common_name al final).
email
- Tipo de rubí: Cuerda
Valor para el
email
campo de certificado.
expire
- Tipo de rubí: Entero | Valor por defecto:
365
Valor que representa el número de días a partir de ahora a través de los cuales el certificado emitido seguirá siendo válido. El certificado caducará después de este período.
extensions
- Tipo de rubí: Picadillo
Hash de las entradas de extensiones X509, en formato
'keyUsage' => 'values' => %w( keyEncipherment digitalSignature), 'critical' => true
.
group
- Tipo de rubí: Cadena, entero
La propiedad del grupo aplicada a todos los archivos creados por el recurso.
key_curve
- Tipo de rubí: Cadena | Valor por defecto:
prime256v1
Valores permitidos:"prime256v1", "secp384r1", "secp521r1"
La curva deseada de la generada key (si key_type es igual a ‘ec’). Correr
openssl ecparam -list_curves
para ver las opciones disponibles.
key_file
- Tipo de rubí: Cuerda
La ruta a un certificado key archivo en el sistema de archivos. Si se especifica la propiedad key_file, el recurso intentará obtener un key desde esta ubicación. Si no key se encuentra el archivo, el recurso generará un nuevo key archivo en esta ubicación. Si no se especifica la propiedad key_file, el recurso generará una key archivo en el mismo directorio que el certificado generado, con el mismo nombre que el certificado generado.
key_length
- Tipo de rubí: Entero | Valor por defecto:
2048
Valores permitidos:1024, 2048, 4096, 8192
La longitud de bits deseada de la generada key (si key_type es igual a ‘rsa’).
key_pass
- Tipo de rubí: Cuerda
La frase de contraseña de un keyfrase de contraseña.
key_type
- Tipo de rubí: Cadena | Valor por defecto:
rsa
Valores permitidos:"ec", "rsa"
El tipo deseado de generado key.
mode
- Tipo de rubí: Entero, Cadena
El modo de permiso aplicado a todos los archivos creados por el recurso.
org
- Tipo de rubí: Cuerda
Valor para el
O
campo de certificado.
org_unit
- Tipo de rubí: Cuerda
Valor para el
OU
campo de certificado.
owner
- Tipo de rubí: Cadena, entero
El propietario aplicó a todos los archivos creados por el recurso.
path
- Tipo de rubí: Cadena | Valor por defecto:
The resource block's name
Una propiedad opcional para especificar la ruta en la que escribir el archivo si difiere del nombre del bloque de recursos.
renew_before_expiry
- Tipo de rubí: Entero
El número de días antes del vencimiento. El certificado se renovará automáticamente cuando se alcance el valor.
Nuevo en Chef Infra Client 15.7
state
- Tipo de rubí: Cuerda
Valor para el
ST
campo de certificado.
subject_alt_name
- Tipo de rubí: Formación
Matriz de entradas de nombres alternativos del sujeto, en formato
DNS:example.com
oIP:1.2.3.4
.
Funcionalidad de recurso común
Los recursos de Chef incluyen propiedades comunes, notificaciones y protecciones de recursos.
Propiedades Comunes
Las siguientes propiedades son comunes a todos los recursos:
compile_time
-
Tipo de rubí: true, false | Valor por defecto:
false
Controle la fase durante la cual se ejecuta el recurso en el nodo. Ajustado a true ejecutar mientras se construye la colección de recursos (el
compile phase
). Ajustado a false para ejecutarse mientras Chef Infra Client está configurando el nodo (elconverge phase
). ignore_failure
-
Tipo de rubí: true, false,: tranquilo | Valor por defecto:
false
Continúe ejecutando una receta si un recurso falla por cualquier motivo.
:quiet
no mostrará el seguimiento de la pila completa y la receta continuará ejecutándose si falla un recurso. retries
-
Tipo de rubí: Entero | Valor por defecto:
0
El número de intentos para detectar excepciones y reintentar el recurso.
retry_delay
-
Tipo de rubí: Entero | Valor por defecto:
2
La demora de reintento (en segundos).
sensitive
-
Tipo de rubí: true, false | Valor por defecto:
false
Asegúrese de que Chef InfraClient no registre datos de recursos confidenciales.
Notificaciones
notifies
-
Tipo de rubí: Símbolo, ‘Chef :: Recurso[String]’
Un recurso puede notificar a otro recurso para que actúe cuando cambia su estado. Especifique un
'resource[name]'
, los:action
ese recurso debe tomar, y luego el:timer
para esa acción. Un recurso puede notificar a más de un recurso; utilizar unanotifies
declaración para cada recurso a ser notificado.Si el recurso referenciado no existe, se genera un error. A diferencia de,
subscribes
no fallará si no se encuentra el recurso de origen.
Un temporizador especifica el punto durante la ejecución de Chef Infra Client en el que se ejecuta una notificación. Están disponibles los siguientes temporizadores:
:before
-
Especifica que la acción sobre un recurso notificado debe ejecutarse antes de procesar el bloque de recursos en el que se encuentra la notificación.
:delayed
-
Defecto. Especifica que una notificación debe ponerse en cola y luego ejecutarse al final de una ejecución de Chef Infra Client.
:immediate
,:immediately
-
Especifica que se debe ejecutar una notificación inmediatamente, por recurso notificado.
La sintaxis de notifies
es:
notifies :action,'resource[name]',:timer
subscribes
-
Tipo de rubí: Símbolo, ‘Chef :: Recurso[String]’
Un recurso puede escuchar a otro recurso y luego tomar medidas si cambia el estado del recurso que se está escuchando. Especifique un 'resource[name]'
, los :action
ser tomado, y luego el :timer
para esa acción.
Tenga en cuenta que subscribes
no aplica la acción especificada al recurso que escucha, por ejemplo:
file '/etc/nginx/ssl/example.crt'do mode '0600' owner 'root'end service 'nginx'do subscribes :reload,'file[/etc/nginx/ssl/example.crt]',:immediatelyend
En este caso el subscribes
propiedad recarga el nginx
servicio siempre que su archivo de certificado, ubicado bajo /etc/nginx/ssl/example.crt
, se actualiza. subscribes
no realiza ningún cambio en el archivo de certificado en sí, simplemente escucha un cambio en el archivo y ejecuta el :reload
acción para su recurso (en este ejemplo nginx
) cuando se detecta un cambio.
Si el otro recurso no existe, la suscripción no generará un error. Contraste esto con la semántica más estricta de notifies
, que generará un error si el otro recurso no existe.
Un temporizador especifica el punto durante la ejecución de Chef Infra Client en el que se ejecuta una notificación. Están disponibles los siguientes temporizadores:
:before
-
Especifica que la acción sobre un recurso notificado debe ejecutarse antes de procesar el bloque de recursos en el que se encuentra la notificación.
:delayed
-
Defecto. Especifica que una notificación debe ponerse en cola y luego ejecutarse al final de una ejecución de Chef Infra Client.
:immediate
,:immediately
-
Especifica que se debe ejecutar una notificación de inmediato, por recurso notificado.
La sintaxis de subscribes
es:
subscribes :action,'resource[name]',:timer
Guardias
Se puede utilizar una propiedad de protección para evaluar el estado de un nodo durante la fase de ejecución de una ejecución de Chef Infra Client. Sobre la base de los resultados de esta evaluación, se utiliza una propiedad de protección para decirle a Chef Infra Client si debe continuar ejecutando un recurso. Una propiedad de guardia acepta una string value o un valor de bloque Ruby:
- A string se ejecuta como un comando de shell. Si el comando regresa
0
, se aplica la guardia. Si el comando devuelve cualquier otro valor, la propiedad guard no se aplica. Guardias de cuerdas en un powershell_script ejecutar comandos de Windows PowerShell y puede volvertrue
además de0
. - Un bloque se ejecuta como código Ruby que debe devolver
true
ofalse
. Si el bloque regresatrue
, se aplica la propiedad de guardia. Si el bloque regresafalse
, la propiedad de guardia no se aplica.
Una propiedad de protección es útil para garantizar que un recurso sea idempotente al permitir que ese recurso pruebe el estado deseado mientras se está ejecutando, y luego, si el estado deseado está presente, para que Chef Infra Client no haga nada.
Propiedades
Las siguientes propiedades se pueden utilizar para definir una protección que se evalúa durante la fase de ejecución de una ejecución de Chef Infra Client:
not_if
-
Evitar que un recurso se ejecute cuando la condición regrese
true
. only_if
-
Permitir que un recurso se ejecute solo si la condición regresa
true
.
Ejemplos de
Los siguientes ejemplos demuestran varios enfoques para usar el openssl_x509_certificate recurso en recetas:
Cree un archivo de certificado autofirmado simple
openssl_x509_certificate '/etc/httpd/ssl/mycert.pem'do common_name 'www.f00bar.com' org 'Foo Bar' org_unit 'Lab' country 'US'end
Crea un certificado usando opciones adicionales
openssl_x509_certificate '/etc/ssl_files/my_signed_cert.crt'do common_name 'www.f00bar.com' ca_key_file '/etc/ssl_files/my_ca.key' ca_cert_file '/etc/ssl_files/my_ca.crt' expire 365 extensions('keyUsage'=>'values'=>%w( keyEncipherment digitalSignature),'critical'=>true,,'extendedKeyUsage'=>'values'=>%w(serverAuth),'critical'=>false,) subject_alt_name ['IP:127.0.0.1','DNS:localhost.localdomain']end
Nos puedes avalar nuestro quehacer dejando un comentario o valorándolo te estamos agradecidos.