0

私は戯曲を書いた

  1. host1 で公開鍵を生成する
  2. コントロール マシンに公開鍵をコピーする
  3. 公開鍵を 2 番目のホスト、つまり host2 にデプロイします。

- hosts: '{{ target }}'
  tasks:
  - name: Check admin pub keys are present on host1
     stat:
      path: /var/services/homes/admin/.ssh/id_rsa.pub
  - name: Generate pub keys on host1 if non-existing
    user:
      name: admin
      generate_ssh_key: yes
      ssh_key_bits: 4096
    when: stat_result.stat.exists == False
  - name: Downloading pub key from host1 to the control machine
    command: scp admin@{{ansible_host}}:/var/services/homes/admin/.ssh/id_rsa.pub /tmp/
    delegate_to: 127.0.0.1
  - name: Copy pub key of host1 to host2
    authorized_keys:
      user: admin       
      key: "{{ lookup('file', '/tmp/id_rsa.pub') }}"
      state: present

私はそれを実行します:

ansible-playbook -i hosts keys.yml -e "target=host1"

問題は最後のタスクにあります。つまり、ホスト 1 の公開鍵をホスト 2 にコピーします。それが書かれている方法は、pubキーを再びhost1にコピーします。

代わりに pub キーを host2 にコピーするように Ansible に指示するにはどうすればよいですか? ありがとう

4

3 に答える 3

0

2 つのオプション。ホスト 1 で:

利用可能な場合ssh-copy-id:

shell: ssh-copy-id admin@host2

また

shell: cat /var/services/homes/admin/.ssh/id_rsa.pub | (ssh admin@host2 "cat >> ~/.ssh/authorized_keys")

注:私はテストしていません。機能させるために微調整したい場合があります。

于 2016-12-21T16:09:58.090 に答える