aboutsummaryrefslogtreecommitdiffstats
path: root/extraconfig/tasks/ssh/host_public_key.yaml
blob: e4ba0cc4405d9bc1f27024bee84f944d68b0ea73 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
heat_template_version: pike

description: >
  This is a template which will fetch the ssh host public key.

parameters:
  server:
    description: ID of the node to apply this config to
    type: string

resources:
  SshHostPubKeyConfig:
    type: OS::Heat::SoftwareConfig
    properties:
      group: script
      outputs:
      - name: rsa
      - name: ecdsa
      - name: ed25519
      config: |
        #!/bin/sh -x
        test -e '/etc/ssh/ssh_host_rsa_key.pub' && cat /etc/ssh/ssh_host_rsa_key.pub > $heat_outputs_path.rsa
        test -e '/etc/ssh/ssh_host_ecdsa_key.pub' && cat /etc/ssh/ssh_host_ecdsa_key.pub > $heat_outputs_path.ecdsa
        test -e '/etc/ssh/ssh_host_ed25519_key.pub' && cat /etc/ssh/ssh_host_ed25519_key.pub > $heat_outputs_path.ed25519

  SshHostPubKeyDeployment:
    type: OS::Heat::SoftwareDeployment
    properties:
      config: {get_resource: SshHostPubKeyConfig}
      server: {get_param: server}


outputs:
  ecdsa:
    description: Host ssh public key (ecdsa)
    value:  {get_attr: [SshHostPubKeyDeployment, ecdsa]}
  rsa:
    description: Host ssh public key (rsa)
    value:  {get_attr: [SshHostPubKeyDeployment, rsa]}
  ed25519:
    description: Host ssh public key (ed25519)
    value:  {get_attr: [SshHostPubKeyDeployment, ed25519]}