java分散式系統部署學習(四)ansible配置ansible.cfg
Ansible預設安裝好後有一個配置檔案/etc/ansible/ansible.cfg,該配置檔案中定義了ansible的主機的預設配置部分,如預設是否需要輸入密碼、是否開啟sudo認證、action_plugins外掛的位置、hosts主機組的位置、是否開啟log功能、預設埠、key檔案位置等等。
具體如下:
[defaults]
# some basic default values...
hostfile = /etc/ansible/hosts \\指定預設hosts配置的位置
# library_path = /usr/share/my_modules/
remote_tmp = $HOME/.ansible/tmp
pattern = *
forks = 5
poll_interval = 15
sudo_user = root \\遠端sudo使用者
#ask_sudo_pass = True \\每次執行ansible命令是否詢問ssh密碼
#ask_pass = True \\每次執行ansible命令時是否詢問sudo密碼
transport = smart
remote_port = 22
module_lang = C
gathering = implicit
host_key_checking = False \\關閉第一次使用ansible連線客戶端是輸入命令提示
log_path = /var/log/ansible.log \\需要時可以自行新增。chown -R root:root ansible.log
system_warnings = False \\關閉執行ansible時系統的提示資訊,一般為提示升級
# set plugin path directories here, separate with colons
action_plugins = /usr/share/ansible_plugins/action_plugins
callback_plugins = /usr/share/ansible_plugins/callback_plugins
connection_plugins = /usr/share/ansible_plugins/connection_plugins
lookup_plugins = /usr/share/ansible_plugins/lookup_plugins
vars_plugins = /usr/share/ansible_plugins/vars_plugins
filter_plugins = /usr/share/ansible_plugins/filter_plugins
fact_caching = memory
[accelerate]
accelerate_port = 5099
accelerate_timeout = 30
accelerate_connect_timeout = 5.0
# The daemon timeout is measured in minutes. This time is measured
# from the last activity to the accelerate daemon.
accelerate_daemon_timeout = 30
本篇就結合一個示例對其進行下了解。我在對之前未連線的主機進行連結時報錯如下:
[[email protected]361way.com ~]# ansible test -a 'uptime'
10.212.52.14 | FAILED => Using a SSH password instead of a key is not possible because Host Key checking is enabled and sshpass does not support this. Please add this host's fingerprint to your known_hosts file to manage this host.
10.212.52.16 | FAILED => Using a SSH password instead of a key is not possible because Host Key checking is enabled and sshpass does not support this. Please add this host's fingerprint to your known_hosts file to manage this host.
從上面的輸出提示上基本可以瞭解到由於在本機的~/.ssh/known_hosts檔案中並有fingerprint key串,ssh第一次連線的時候一般會提示輸入yes 進行確認為將key字串加入到 ~/.ssh/known_hosts 檔案中。
方法1:
瞭解到問題原因為,我們瞭解到進行ssh連線時,可以使用-o引數將StrictHostKeyChecking設定為no,使用ssh連線時避免首次連線時讓輸入yes/no部分的提示。通過檢視ansible.cfg配置檔案,發現如下行:
[ssh_connection]
# ssh arguments to use
# Leaving off ControlPersist will result in poor performance, so use
# paramiko on older platforms rather than removing it
#ssh_args = -o ControlMaster=auto -o ControlPersist=60s
所以這裡我們可以啟用ssh_args 部分,使用下面的配置,避免上面出現的錯誤:
ssh_args = -o ControlMaster=auto -o ControlPersist=60s -o StrictHostKeyChecking=no
方法2:
在ansible.cfg配置檔案中,也會找到如下部分:
# uncomment this to disable SSH key host checking
host_key_checking = False
預設host_key_checking部分是註釋的,通過開啟該行的註釋,同樣也可以實現跳過 ssh 首次連線提示驗證部分。由於配置檔案中直接有該選項,所以推薦用方法2 。
其他部分
由於官方給的說明比較詳細,同時ansible.cfg 檔案本身預設也有註釋提示部分,所以不做過多說明,這裡再舉個例子,預設ansible 執行的時候,並不會輸出日誌到檔案,不過在ansible.cfg 配置檔案中有如下行:
# logging is off by default unless this path is defined
# if so defined, consider logrotate
log_path = /var/log/ansible.log
同樣,預設log_path這行是註釋的,開啟該行的註釋,所有的命令執行後,都會將日誌輸出到/var/log/ansible.log 檔案,便於瞭解在何時執行了何操作及其結果,如下:
[[email protected]361way.com ansible]# cat /var/log/ansible.log
2015-05-04 01:57:19,758 p=4667 u=root |
2015-05-04 01:57:19,759 p=4667 u=root | /usr/bin/ansible test -a uptime
2015-05-04 01:57:19,759 p=4667 u=root |
2015-05-04 01:57:20,563 p=4667 u=root | 10.212.52.252 | success | rc=0 >>
01:57am up 23 days 11:20, 2 users, load average: 0.38, 0.38, 0.40
2015-05-04 01:57:20,831 p=4667 u=root | 10.212.52.14 | success | rc=0 >>
02:03am up 331 days 8:19, 2 users, load average: 0.08, 0.05, 0.05
2015-05-04 01:57:20,909 p=4667 u=root | 10.212.52.16 | success | rc=0 >>
02:05am up 331 days 8:56, 2 users, load average: 0.00, 0.01, 0.05
更多部分可以參看官方文件。
相關推薦
java分散式系統部署學習(四)ansible配置ansible.cfg
Ansible預設安裝好後有一個配置檔案/etc/ansible/ansible.cfg,該配置檔案中定義了ansible的主機的預設配置部分,如預設是否需要輸入密碼、是否開啟sudo認證、action_plugins外掛的位置、hosts主機組的位置、是否開啟
java分散式系統部署學習(九)ansible-playbook進階
一、併發執行 ansible預設只會建立5個程序,所以一次任務只能同時控制5臺機器執行.那如果你有大量的機器需要控制,或者你希望減少程序數,那你可以採取非同步執行.ansible的模組可以把task放進後臺,然後輪詢它.這使得在一定程序數下能讓大量需要的機器同時運作起來. 使用asy
java分散式系統部署學習(六)ansible Ad-hoc與commands模組
Ad-Hoc 是指ansible下臨時執行的一條命令,並且不需要儲存的命令,對於複雜的命令後面會說playbook。講到Ad-hoc 就要提到模組,所有的命令執行都要依賴於事先寫好的模組,預設安裝好的ansible 裡面已經自帶了很多模組,如:command、r
java分散式系統部署學習(五)ansible Dynamic Inventory
Ansible Inventory實際上是包含靜態Inventory和動態Inventory兩部分,靜態Inventory指的是在檔案/etc/ansible/hosts中指定的主機和組,Dynamic Inventory指通過外部指令碼獲取主機列表,並按照an
java分散式系統部署學習(三)ansible的Inventory與Patterns
Ansible的Inventory檔案,可以理解為saltstack中的salt-key中的所有minion的列表以及使用者自定義的nodegroup的概念,預設情況下這個檔案是/etc/ansible/hosts ,後面還會講到Dynamic Inventor
java分散式系統部署學習(二)ansible構架
一、Ansible基本架構 ansible是一個模型驅動的配置管理器,支援多節點發布、遠端任務執行。預設使用 SSH 進行遠端連線。無需在被管理節點上安裝附加軟體,可使用各種程式語言進行擴充套件。 上圖為ansible的基本架構,從上圖可以瞭解到其由以下
MyBatis學習(四)XML配置文件之SQL映射的XML文件
元素 數據庫 resultmap ash 有一點 oracl 解決 轉換成 插入語 SQL映射文件常用的元素: 1.select 查詢語句是MyBatis最常用的語句之一。 執行簡單查詢的select元素是非常簡單的: <select id=”sele
webpack學習(四):配置CleanWebpackPlugin
demo地址: https://github.com/Lkkkkkkg/webpack-demo 上次配置HtmlWebpackPlugin: https://blog.csdn.net/qq593249106/article/details/84900169 繼上次配置完 HtmlWe
深度學習(四)環境配置 Ubuntu Server 16.04.1 LTS 安裝步驟 tensorflow 安裝
Ubuntu Server 16.04.1 LTS 安裝步驟 1.下載ISO光碟映象檔案 http://www.ubuntu.com/download/server 2.點選下載後進入http://www.ubuntu.com/download/server/insta
zookeeper學習(四):配置zookeeper叢集節點的操作
1.zookeeper的節點就是一個樹形結構。 2.對節點的操作 1、使用 ls 命令來檢視當前 ZooKeeper 中所包含的內容: ls / 2、建立一個新的 znode ,使用 create /zk myData 。這個命令建立了一個新的 znode
java學習(四)代碼的設計
方法 聯系 string 封裝 代碼 his 站點 add 團隊 一、目的 1、為了使程序員編寫的代碼更加的簡潔,使人閱讀起來更加流暢 2、將運算代碼與界面代碼完全分離開來,利於團隊開發,提高團隊之間的工作效率 3、 在很短的時間內可以替換整個站點的外觀; 4、使程
java學習(四)static靜態變量 和this
java學習 方便 private setname 局部變量 變量 告訴 應該 size java中的this /* this:是當前類的對象引用。簡單的記,它就代表當前類的一個對象。 註意:誰調用這個方法,在該方法內部的this就代表誰
java源碼學習(四)ArrayList
mem mov elements fail ren pac runt 語義 tran ArrayList ? ArrayList是基於數組實現的,是一個動態數組,其容量能自動增長,類似於C語言中的動態申請內存,動態增長內存。 ? ArrayList不是線程安全的,只能用在單
HBase概念學習(四)Java API之掃描和過濾器
影響 產生 str 實例 分享 get 批量 java api track HBase主要的CRUD操作就不多介紹了,無非就是Put,Get。Delete三個類的運用。 本文相當於是閱讀HBase權威指南的總結。 一、掃描(Scan) 如今看一下掃
java虛擬機學習(四)--垃圾收集算法
rational 偏移量 pen tar mage src tro 檢查 font 1、垃圾收集算法 垃圾收集算法的實現涉及大量的程序細節,而且各個平臺的虛擬機操作內存的方法又各不相同,介紹幾種垃圾收集算法的思想及其發展過程. 1.1、標記-清除算法 垃圾收集分
Java學習(四)
div ++ 編譯 指針 c++ 所有 end xtend 利用 Java中類的操作與C++中基本相同,但舍棄了一些比較復雜但實際用處不多的操作,比如多繼承,在此用接口來表示。 1 package helloWorld; 2 3 public class Clas
操作系統學習(四)、系統啟動過程
中斷向量 初始化 地址 I/O 向量 錯誤 cpu 系統初始 系統初始化 一、操作系統啟動部分主要執行流程 當PC電源打開後,80x86結構的CPU將自動進入實時模式。並從地址0xFFFF0 (FFFF:0) 開始自動執行程序代碼,這個地址通常是是ROM-BIOS中的地址
java基礎類庫學習(四.2)異常處理的陷阱
前言 java的異常類Exception繼承自非正常情況類Throwable,異常類下又分為兩大類:checked異常和runtime異常, 其中發生checked異常的類如果不做處理程式會發生編譯錯誤,導致程式中斷編譯 而runtime異常的類只有在執行階段才會發生,如果不做處理,
Java圖書管理系統練習程式(四)
Java圖書管理系統練習程式(四) 本部分主要介紹List的基本操作與Java中泛型的使用。 一、Java中泛型的使用 泛型,即“引數化型別”。一提到引數,最熟悉的就是定義方法時有形參,然後呼叫此方法時傳遞實參。那麼引數化型別怎麼理解呢?顧名思義,就是將型別由原來的具體的型別引數化,類似
Java 學習(四)—— 異常處理
一、異常的概念 異常指的是執行期出現的錯誤,也就是當程式開始執行以後執行期出現的錯誤。出現錯誤時觀察錯誤的名字和行號最為重要。 異常發生的原因: 使用者輸入了非法資料。 要開啟的檔案不存在。 網路通訊時連線中斷,或者JVM記憶