1. 程式人生 > >Ansible 二(新手上路)

Ansible 二(新手上路)

ansible遠程連接 ansible傳文件 ansible報錯

Ansible 二(新手上路)


1.遠程連接概述

遠程控制:

ansible1.2版本及以前的版本,默認使用python寫的paramiko模塊進行控制linux主機。

ansible1.3版本以後,默認使用openssh進行控制linux主機,並開啟了ControlPersist來優化連接速度和認證(centos6.0/RHEL6以後全已經支持)。

遠程傳輸:

默認使用SFTP傳輸;如果不支持可以修改配置文件為SCP模式傳輸。

ansible配置文件詳解:http://www.ansible.com.cn/docs/intro_configuration.html

遠程密鑰

ansible會默認假定使用ssh key (推薦使用);

也可以通過密碼:--ask-pass 或--ask-sudo-pass 使用密碼;

2.第一條命令

準備環境:

1.ansible管理機配置

配置linux客戶機ip或者域名:

        more /etc/ansible/hosts 
        1.1.1.2
        1.1.1.3

2.ansible管理機生成ssh公鑰和私鑰

ssh-keygen #創建密碼

回車 #提示回車最後會生成

輸入加密的密碼(這裏可以不輸入密碼,直接回車;)

再次輸入加密的密碼

生成的私鑰和公鑰放在/root/.ssh/目錄下

技術分享

3.設定遠程使用ssh key方式

ssh-agent bash

ssh-add ~/.ssh/id_rsa

4.將公鑰拷貝到linux客戶機

ssh-copy-id -i ~/.ssh/id_rsa.pub -p 22 [email protected]

/* */

ssh-copy-id -i ~/.ssh/id_rsa.pub -p 22 [email protected]

5.運行第一個測試命令,ping所以的節點

    ansible all -m ping
    返回如下:
    1.1.1.2 | SUCCESS => {
    "changed": false, 
    "ping": "pong"
    }
    1.1.1.3 | SUCCESS => {
    "changed": false, 
    "ping": "pong"
    }

以test01身份ping所以主機


6.對所以節點運行一個命令

    ansible all -a "/bin/echo hello"
    返回如下:
    1.1.1.2 | SUCCESS | rc=0 >>
    hello
    1.1.1.3 | SUCCESS | rc=0 >>
    hello

報錯信息:

報錯1:

"msg": "Failed to connect to the host via ssh: ssh: connect to host 1.1.1.3 port 22: Connection refused\r\n

原因:

1、22端口沒有打開,開啟ssh服務,防火墻允許端口;

2、默認22端口已經修改成別的端口號;

解決辦法:

修改remote_port端口號為遠程端口號,所以的linux客戶機遠程端口盡量一致,簡化管理。

例如:遠程端口號為10000,修改如下:

remote_port = 10000

然後在運行命令。

報錯2:

The authenticity of host ‘1.1.1.2 (1.1.1.2)‘ can‘t be established.

ECDSA key fingerprint is 05:51:e5:c4:d4:66:9b:af:5b:c9:ba:e9:e6:a4:2b:fe.

Are you sure you want to continue connecting (yes/no)?

原因:

在首次連接或者重裝系統之後會出現檢查keys 的提示

解決辦法:

看Ansible 三(公鑰認證)


本文出自 “506554897” 博客,請務必保留此出處http://506554897.blog.51cto.com/2823970/1954850

Ansible 二(新手上路)