sean797.foreman_installer

foreman_installer Statut de construction

Rôle pour interagir avec foreman-installer

Exigences

N/A

Variables du rôle

vars:
  foreman_installer:
    foreman_installer_pkg:                        # Paquet de l'installateur foreman. Vous voudrez probablement soit "foreman-installer" soit "katello".
    foreman_installer_verbose:                    # Exécute l'installateur avec l'option -v
    foreman_installer_scenario:                   # Scénario. Obligatoire
    foreman_installer_scenarios_answers:          # Dictionnaire de réponses personnalisées pour votre scénario. Voir [FAQs](https://github.com/sean797/ansible-role-foreman_installer#faqs). 
    foreman_installer_options: []                 # Tableau d'options supplémentaires à passer chaque fois que l'installateur est exécuté
    foreman_installer_generate_proxy_certs_from:  # Chaîne contenant l'hôte ansible pour générer des certificats pour un Proxy intelligent Katello
    foreman_installer_katello_ca:                 # Chaîne contenant le certificat CA personnalisé. Uniquement pour Katello et Proxy intelligent Katello.
    foreman_installer_katello_cert:               # Chaîne contenant le certificat personnalisé. Uniquement pour Katello.
    foreman_installer_katello_key:                # Chaîne contenant la clé personnalisée. Uniquement pour Katello.
    foreman_installer_katello_csr:                # Chaîne contenant la CSR personnalisée. Uniquement pour Katello.
    foreman_installer_katello_proxy_cert:         # Chaîne contenant le certificat personnalisé. Uniquement pour Proxy intelligent Katello.
    foreman_installer_katello_proxy_key:          # Chaîne contenant la clé personnalisée. Uniquement pour Proxy intelligent Katello.
    foreman_installer_katello_proxy_csr:          # Chaîne contenant la CSR personnalisée. Uniquement pour Proxy intelligent Katello.
    foreman_installer_katello_certs_dir:          # Répertoire pour stocker les certificats
    foreman_installer_update_certs: False         # Mettre sur True pour forcer la mise à jour des certificats.
    foreman_installer_update_certs_tar: False     # Mettre sur True pour forcer la génération d'une nouvelle archive de certificats de Proxy à appliquer.

    # Options avancées
    foreman_installer_patches:                    # Tableau de dictionnaires permettant les correctifs pour les fichiers de l'installateur. Voir defaults/main.yml pour un exemple.
    foreman_installer_encryption_key:             # Clé de cryptage à mettre dans /etc/foreman/encryption_key.rb. Doit être la même dans un cluster Foreman.
    foreman_installer_katello_cluster_group:      # Nom du groupe d'inventaire contenant tous les serveurs Katello. Requiert http://projects.theforeman.org/issues/20021

Exemple de Playbook

Scénario Foreman de base :

    - hosts:
      - foreman.example.com
      roles:
        - role: foreman_installer
          foreman_installer_scenario: foreman
          foreman_installer_scenarios_answers:
            foreman:
              admin_password: changeme

Scénario Katello avec certificats personnalisés :

    - 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: changeme
         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 }}"

Scénario Proxy Katello avec archive de certificats fournie :

    - 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 #Cela doit déjà être sur le disque
             pulp_oauth_secret: <outputted when generating the certificates tar>
             parent_fqdn: katello.example.com
           foreman_proxy:
             oauth_consumer_key: <outputted when generating the certificates tar>
             oauth_consumer_secret: <outputted when generating the certificates tar>
             foreman_base_url: https://katello.example.com
             trusted_hosts:
               - katello.example.com
               - "{{ ansible_fqdn }}"

Scénario Proxy Katello sans archive de certificats fournie :

    - 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

Cluster Katello avec certificats personnalisés :

Quelques éléments à noter :

  • Toutes les clés, secrets et réponses de mot de passe doivent être identiques dans le cluster. Veuillez ne pas utiliser les valeurs de cet exemple.
  • L'option foreman_installer_patches a été utilisée uniquement pour backporter http://projects.theforeman.org/issues/20021 dans ma version 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: changeme
             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 }}" # Le certificat doit utiliser des dns-alt-names avec tous les noms d'hôtes du cluster et le nom d'hôte 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/ }

Cluster de proxy Foreman connecté à un cluster Katello avec certificats personnalisés :

Chaque proxy est son propre proxy dans Foreman, mais un client peut utiliser une adresse VIP pour se connecter à l'un ou l'autre pour des packages.

    - 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 }}" # Le certificat doit utiliser des dns-alt-names avec tous les noms d'hôtes du cluster et le nom d'hôte 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

FAQs

Comment savoir quelles options mettre dans la variable foreman_installer_scenarios_answers ?

Vous devez vérifier le fichier /etc/foreman-installer/scenarios.d/{{ foreman_installer_scenario }}-answers.yaml. Stocker les réponses de cette manière rend le rôle idempotent, si vous utilisez foreman_installer_options, nous devrions exécuter l'installateur à chaque exécution pour nous assurer qu'il est appliqué. Alors que cette méthode nous permet de gérer le fichier de réponses et d'exécuter l'installateur en tant que gestionnaire (uniquement si quelque chose change).

Comment retirer des options de la variable foreman_installer_scenarios_answers ?

Vous devez définir la valeur sur null.

foreman_installer_scenarios_answers:
  foreman:
    admin_password: changeme
    admin_last_name: null

Comment activer ou désactiver un plug-in ?

Pour activer, définissez la valeur sur un hash vide. Pour désactiver, définissez la valeur sur false.

foreman_installer_scenarios_answers:
  foreman:
    admin_password: changeme
    admin_last_name: null
  "foreman::plugin::remote_execution": {}
  "foreman::plugin::discovery": false
À propos du projet

Interacts with foreman-installer/satellite-installer to build Foreman, Katello, Satllite 6, Capsules or Smart Proxies.

Installer
ansible-galaxy install sean797.foreman_installer
Licence
gpl-3.0
Téléchargements
1.2k
Propriétaire