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>> {</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>> {</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>>></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>>></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,如需轉載請自行聯系原作者