无法执行用于从 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
我想从 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