天天看點

Ansible 二(新手上路)

Ansible 二(新手上路)

1.遠端連接配接概述

遠端控制:

    ansible1.2版本及以前的版本,預設使用python寫的paramiko子產品進行控制linux主機。

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

遠端傳輸:

    預設使用SFTP傳輸;如果不支援可以修改配置檔案為SCP模式傳輸。

遠端密鑰

    ansible會預設假定使用ssh key (推薦使用);

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

2.第一條指令

準備環境:

    1.ansible管理機配置

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

<code>        </code><code>more </code><code>/</code><code>etc</code><code>/</code><code>ansible</code><code>/</code><code>hosts </code>

<code>        </code><code>1.1</code><code>.</code><code>1.2</code>

<code>        </code><code>1.1</code><code>.</code><code>1.3</code>

    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是以的節點

<code>    </code><code>ansible </code><code>all</code> <code>-</code><code>m ping</code>

<code>    </code><code>傳回如下:</code>

<code>    </code><code>1.1</code><code>.</code><code>1.2</code> <code>| SUCCESS </code><code>=</code><code>&gt; {</code>

<code>    </code><code>"changed"</code><code>: false, </code>

<code>    </code><code>"ping"</code><code>: </code><code>"pong"</code>

<code>    </code><code>}</code>

<code>    </code><code>1.1</code><code>.</code><code>1.3</code> <code>| SUCCESS </code><code>=</code><code>&gt; {</code>

    以test01身份ping是以主機

    6.對是以節點運作一個指令

<code>    </code><code>ansible </code><code>all</code> <code>-</code><code>a </code><code>"/bin/echo hello"</code>

<code>    </code><code>1.1</code><code>.</code><code>1.2</code> <code>| SUCCESS | rc</code><code>=</code><code>0</code> <code>&gt;&gt;</code>

<code>    </code><code>hello</code>

<code>    </code><code>1.1</code><code>.</code><code>1.3</code> <code>| SUCCESS | rc</code><code>=</code><code>0</code> <code>&gt;&gt;</code>

報錯資訊:

報錯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 51CTO部落格,原文連結:http://blog.51cto.com/506554897/1954850,如需轉載請自行聯系原作者