| --- |
| # config-ssh-key.yml - creates a ssh key on config node, has head node trust it |
| |
| # Copyright 2017-present Open Networking Foundation |
| # |
| # Licensed under the Apache License, Version 2.0 (the "License"); |
| # you may not use this file except in compliance with the License. |
| # You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| |
| - hosts: config |
| vars: |
| - ssh_keysize: 4096 |
| - ssh_keytype: rsa |
| |
| tasks: |
| - name: Create config ssh key |
| user: |
| name: "{{ ansible_user_id }}" |
| generate_ssh_key: yes |
| ssh_key_comment: cord-config-key |
| ssh_key_type: "{{ ssh_keytype }}" |
| ssh_key_bits: "{{ ssh_keysize }}" |
| |
| - name: Retrieve ssh pubkey using slurp |
| slurp: |
| src: "{{ ansible_env.HOME }}/.ssh/id_{{ ssh_keytype }}.pub" |
| register: config_pubkey |
| |
| - hosts: head |
| gather_facts: false |
| tasks: |
| - name: Wait for head node to be available |
| wait_for_connection: |
| |
| - hosts: head |
| tasks: |
| - name: Add config ssh key to head node |
| authorized_key: |
| user: "{{ ansible_user_id }}" |
| key: "{{ hostvars[groups['config'][0]].config_pubkey.content | b64decode }}" |
| |