ssh client - distribuce klíčů ------------------------------ .. |mainmaster| replace:: slot2 .. |someslot| replace:: slot6 kroky ===================== .. parsed-literal:: # editace pillar/roles/masters/ssh_config.sls salt '|mainmaster|' saltutil.refresh_pillar salt '|mainmaster|' celaeno_ssh.authorize salt '|someslot|' saltutil.refresh_pillar salt '|someslot|' state.apply subprofiles.ssh-client.configuration popis ===================== Hlavním místem, ze kterého se konfigurují jak mají být ssh klíče vygenerovány je tento pillar: .. code-block:: salt # pillar/roles/masters/ssh_config.sls ssh_config: auth_keys_defined: # klíči zároven definuje, na které hosty má být ssh config aplikován slot1: ['slot2'] # slot1 má v auth keys povoleno přihlášení ze slot2 slot2: ['slot1'] # slot2 má v auth keys povoleno přihlášení ze slot1 slot3: ['slot4'] slot4: ['slot3'] gate-prod1: ['gate-prod2'] gate-prod2: ['gate-prod1'] auth_keys_everytime: ['slot1', 'slot2'] # každý server musí být dostupný ze slotu 1 a 2. Provoláním ``salt 'slot1' celaeno_ssh.authorize`` na masterový node (zde slot1) se provede: - vygenerování privátních a veřejných klíčů do storage na saltmasteru do ``/etc/salt/pki-hosts`` - pokud ješte neexistuje - do filepillaru ``/etc/salt/filepillar/hosts/slot4/ssh_client`` se uloží: ssh_config['private'] privátní klíč každého stroje typ string ssh_config['public'] večejný klíč každého stroje typ string ssh_config['authorized'] veřejné klíče, které mají být nastaveny v authorized_keys. Právě z vazeb konfigurace nahoře. typu list of string ssh_config['others'] privátní klíče, které mají být uloženy na cílovém stroji v (/root/.ssh). Typicky bitbucket pro deployment typu dict kde klíčem je jméno souboru a hodnotou string s klíčem Pillar je potřeba před použitím aktualizovat pomocí ``salt 'slot4' saltutil.refresh_pillar`` na cílový node Samotné nasazení na cílový node provedeme pomocí: ``salt 'slot4' state.apply subprofiles.ssh-client.configuration`` .. WARNING:: Existuje subprofile ssh-key-generator, který to měl řešit ale momentálně adept na smazání nebo přepis. Nenech se tím zmást :) .. TIP:: Neuděláme distribuci nějak saltově, reaktorem třeba.