无法执行用于从 git 获取代码并将其推送到多个服务器的 Ansible 脚本

Unable to execute Ansible script for fetching code from git and pushing it to multiple server

我想从 git 获取我的 RoR 代码,构建它,然后通过 Ansible 脚本将它推送到多个远程机器。我已经在 Ansible 的主机文件下提到了我的所有机器详细信息。

我已经创建了 ssh 密钥并将其推送到我的 github 帐户的 ssh 密钥部分。 这是我的 playbook.yml 样子。

---
- hosts: ansibleserver
  tasks:
    - git:
        repo: git@github.com:abc/abc.git
        dest: /tmp/LMS/
        version: master
        key_file: /root/.ssh/id_rsa
- hosts: redisservers
  tasks:
    - name: Copy file to a remote server
      copy:
        src: /root/LMS/
        dest: /root/LMS/
- hosts: webservers
  user: root
  vars:
      user: root
      home_directory: "/root/LMS/app/"
      rails_env: "development"
      deploy_to: "{{ /root/LMS/ }}"
~

我无法执行单个任务,以下是错误。

PLAY [ansibleserver] ***************************************************************************************************************************************************

TASK [Gathering Facts] *************************************************************************************************************************************************
fatal: [192.168.193.30]: UNREACHABLE! => {"changed": false, "msg": "Failed to connect to the host via ssh: \S\nKernel \r on an \m\n                                    !!!WARNING!!!                   \n############################################################################\nACCESS TO THIS SYSTEM IS STRICTLY RESTRICTED TO AUTHORIZED PERSONS ONLY \nUNAUTHORIZED ACCESS TO THIS SYSTEM IS NOT ALLOWED AND EVERY ACTIVITY IS MONITORED ON THIS \n                                      SYSTEM.                                \t\t\n###########################################################################################\nPermission denied (publickey,gssapi-keyex,gssapi-with-mic,password).", "unreachable": true}

PLAY RECAP *************************************************************************************************************************************************************
192.168.193.30             : ok=0    changed=0    unreachable=1    failed=0    skipped=0    rescued=0    ignored=0

由于第一个任务失败,无法进行第二个和第三个任务。

如果这不是 YAML 语法问题,请先检查:

  - git: Cloning LMS code from git
      repo: git@github.com:**/abc.git
      dest: /root/deployer/setup/abc/
      version: master

含义:与 Git 本身相比,Git module 的选项应该缩进。
the examples:

# Example git checkout from Ansible Playbooks
- git:
    repo: 'https://foosball.example.org/path/to/repo.git'
    dest: /srv/checkout
    version: release-0.22