sean797.foreman_installer
foreman_installer 
Rol para interactuar con el instalador de Foreman.
Requisitos
N/A
Variables del Rol
vars:
foreman_installer:
foreman_installer_pkg: # paquete del instalador de Foreman. Lo más probable es que desees "foreman-installer" o "katello".
foreman_installer_verbose: # Ejecuta el instalador con la opción -v
foreman_installer_scenario: # Escenario. Requerido
foreman_installer_scenarios_answers: # Diccionario de respuestas personalizadas para tu escenario. Ver [Preguntas Frecuentes](https://github.com/sean797/ansible-role-foreman_installer#faqs).
foreman_installer_options: [] # Array de opciones adicionales que pasar al ejecutar el instalador.
foreman_installer_generate_proxy_certs_from: # Cadena que contiene el host ansible para generar certificados para un Proxy Inteligente de Katello.
foreman_installer_katello_ca: # Cadena que contiene el certificado CA personalizado. Solo para Katello y Proxy Inteligente de Katello.
foreman_installer_katello_cert: # Cadena que contiene el certificado personalizado. Solo para Katello.
foreman_installer_katello_key: # Cadena que contiene la clave personalizada. Solo para Katello.
foreman_installer_katello_csr: # Cadena que contiene el CSR personalizado. Solo para Katello.
foreman_installer_katello_proxy_cert: # Cadena que contiene el certificado personalizado. Solo para Proxy Inteligente de Katello.
foreman_installer_katello_proxy_key: # Cadena que contiene la clave personalizada. Solo para Proxy Inteligente de Katello.
foreman_installer_katello_proxy_csr: # Cadena que contiene el CSR personalizado. Solo para Proxy Inteligente de Katello.
foreman_installer_katello_certs_dir: # Directorio para almacenar los certificados.
foreman_installer_update_certs: False # Establecer en True para forzar la actualización del certificado.
foreman_installer_update_certs_tar: False # Establecer en True para forzar la generación y aplicación de un nuevo tar de certificados de Proxy.
# Opciones Avanzadas
foreman_installer_patches: # Array de diccionarios que permiten parches contra los archivos del instalador. Ver defaults/main.yml para un ejemplo.
foreman_installer_encryption_key: # Clave de cifrado que se coloca en /etc/foreman/encryption_key.rb. Debe ser la misma en todo un clúster de Foreman.
foreman_installer_katello_cluster_group: # Nombre del grupo de inventario que contendrá todos los servidores Katello. Requiere http://projects.theforeman.org/issues/20021
Ejemplo de Playbook
Escenario básico de Foreman:
- hosts:
- foreman.example.com
roles:
- role: foreman_installer
foreman_installer_scenario: foreman
foreman_installer_scenarios_answers:
foreman:
admin_password: cambiamelo
Escenario de Katello con certificados personalizados:
- hosts:
- katello.example.com
var_files:
- group_vars/vault_certs.yml
roles:
- role: foreman_installer
foreman_installer_pkg: katello
foreman_installer_scenario: katello
foreman_installer_scenarios_answers:
foreman:
admin_password: cambiamelo
foreman_installer_katello_ca: "{{ vault_foreman_installer_katello_ca }}"
foreman_installer_katello_cert: "{{ vault_katello_cert }}"
foreman_installer_katello_key: "{{ vault_foreman_installer_katello_key }}"
foreman_installer_katello_csr: "{{ vault_foreman_installer_katello_csr }}"
Escenario de Proxy de Katello con el tar de certificados suministrado:
- hosts:
- foreman-proxy.example.com
roles:
- role: foreman_installer
foreman_installer_pkg: foreman-proxy-content
foreman_installer_scenario: foreman-proxy-content
foreman_installer_scenarios_answers:
foreman_proxy_content:
certs_tar: /root/foreman-proxy.example.com-certs.tar # Este archivo ya debe estar en disco
pulp_oauth_secret: <salida al generar el tar de certificados>
parent_fqdn: katello.example.com
foreman_proxy:
oauth_consumer_key: <salida al generar el tar de certificados>
oauth_consumer_secret: <salida al generar el tar de certificados>
foreman_base_url: https://katello.example.com
trusted_hosts:
- katello.example.com
- "{{ ansible_fqdn }}"
Escenario de Proxy de Katello sin el tar de certificados suministrado:
- hosts:
- foreman-proxy.example.com
roles:
- role: foreman_installer
foreman_installer_pkg: foreman-proxy-content
foreman_installer_scenario: foreman-proxy-content
foreman_installer_generate_proxy_certs_from: katello.example.com
foreman_installer_katello_proxy_cert: "{{ vault_proxy1_cert }}"
foreman_installer_katello_proxy_key: "{{ vault_proxy1_key }}"
foreman_installer_katello_proxy_csr: "{{ vault_proxy1_csr }}"
foreman_installer_katello_ca: "{{ vault_foreman_installer_katello_ca }}"
foreman_installer_scenarios_answers:
foreman_proxy_content:
parent_fqdn: katello.example.com
foreman_proxy:
foreman_base_url: https://katello.example.com
trusted_hosts:
- katello.example.com
Clúster de Katello con certificados personalizados:
Algunas cosas a tener en cuenta:
- Todas las respuestas de clave, secreto y contraseña deben coincidir en todo el clúster. Por favor, no utilices los valores en este ejemplo.
- La opción
foreman_installer_patches
solo se utilizó para retroceder http://projects.theforeman.org/issues/20021 a mi versión de Katello.
- hosts:
- katello1.example.com
- katello2.example.com
var_files:
- group_vars/vault_certs.yml
roles:
- role: foreman_installer
foreman_installer_pkg: katello
foreman_installer_scenario: katello
foreman_installer_scenarios_answers:
foreman_proxy_content:
pulp_oauth_secret: uC2qfoQfPVhdFTBEbS89ykZWQz6BVpcu
foreman:
db_password: KmVzXiWuVWCUZrn4kWF8PRsFG4H4ecqo
initial_location: Global
initial_organization: AMCE
admin_password: cambiamelo
servername: katello.example.com
foreman_url: https://katello.example.com
oauth_consumer_key: xmi95B9qNQoX6owdg4MT8WMCBNhgudYy
oauth_consumer_secret: x6TheD8Z9ZBtgdgBUrqSbPR2rh6k7UQE
foreman_proxy:
registered_name: katello.example.com
registered_proxy_url: https://katello.example.com:9090
oauth_consumer_key: xmi95B9qNQoX6owdg4MT8WMCBNhgudYy
oauth_consumer_secret: x6TheD8Z9ZBtgdgBUrqSbPR2rh6k7UQE
foreman_base_url: https://katello.example.com
trusted_hosts:
- katello.example.com
- katello1.example.com
- katello2.example.com
katello:
oauth_secret: uC2qfoQfPVhdFTBEbS89ykZWQz6BVpcu
foreman_installer_custom_hiera:
candlepin::db_password: L45DkebcvWdgXG9ryzWkfavSvQ23dw8U
foreman_installer_encryption_key: dfc6799e4d722a4e86c786cb0fc96cbbae0151f6
foreman_installer_katello_cluster_group: katello-servers
foreman_installer_katello_ca: "{{ vault_foreman_installer_katello_ca }}"
foreman_installer_katello_cert: "{{ vault_katello_cert }}" # El certificado debe usar dns-alt-names con todos los nombres de host del clúster y el nombre del host VIP.
foreman_installer_katello_key: "{{ vault_foreman_installer_katello_key }}"
foreman_installer_katello_csr: "{{ vault_foreman_installer_katello_csr }}"
foreman_installer_patches:
- { src: files/katello_certs_tools.patch, basedir: /usr/lib/python2.7/site-packages/ }
- { src: files/puppet-certs.patch, basedir: /usr/share/katello-installer-base/modules/certs/ }
Clúster de proxies de Foreman conectados a un clúster de Katello con certificados personalizados:
Cada proxy es un proxy independiente en Foreman, pero un cliente puede usar una dirección VIP para conectarse a cualquiera de ellos para paquetes.
- hosts:
- foreman-proxy1.example.com
- foreman-proxy2.example.com
roles:
- role: foreman_installer
foreman_installer_pkg: foreman-proxy-content
foreman_installer_scenario: foreman-proxy-content
foreman_installer_generate_proxy_certs_from: katello1.example.com
foreman_installer_katello_proxy_cert: "{{ vault_proxy1_cert }}" # El certificado debe usar dns-alt-names con todos los nombres de host del clúster y el nombre del host VIP.
foreman_installer_katello_proxy_key: "{{ vault_proxy1_key }}"
foreman_installer_katello_proxy_csr: "{{ vault_proxy1_csr }}"
foreman_installer_katello_ca: "{{ vault_foreman_installer_katello_ca }}"
foreman_installer_scenarios_answers:
foreman_proxy_content:
parent_fqdn: katello.example.com
foreman_proxy:
foreman_base_url: https://katello.example.com
trusted_hosts:
- katello1.example.com
- katello2.example.com
- katello.example.com
- foreman-proxy1.example.com
- foreman-proxy2.example.com
- foreman-proxy.example.com
Preguntas Frecuentes
¿Cómo sé qué opciones poner en la variable foreman_installer_scenarios_answers
?
Necesitas revisar el archivo /etc/foreman-installer/scenarios.d/{{ foreman_installer_scenario }}-answers.yaml. Almacenar respuestas de esta manera hace que el rol sea idempotente; si usas foreman_installer_options
, ejecutaríamos el instalador en cada ejecución para asegurarnos de que se aplica. Este método nos permite gestionar el archivo de respuestas y ejecutar el instalador como un controlador (solo si algo cambia).
¿Cómo elimino opciones de la variable foreman_installer_scenarios_answers
?
Tendrás que establecer el valor en null
.
foreman_installer_scenarios_answers:
foreman:
admin_password: cambiamelo
admin_last_name: null
¿Cómo habilito o deshabilito un complemento?
Para habilitar, establece el valor en un hash vacío. Para deshabilitar, establece el valor en falso.
foreman_installer_scenarios_answers:
foreman:
admin_password: cambiamelo
admin_last_name: null
"foreman::plugin::remote_execution": {}
"foreman::plugin::discovery": false
Interacts with foreman-installer/satellite-installer to build Foreman, Katello, Satllite 6, Capsules or Smart Proxies.
ansible-galaxy install sean797.foreman_installer