1.配置檔案位置
預設的檔案路徑為 /etc/ansible/hosts
除此之外還可以使用動態inventory,如有這個需求可以參考ansible中文指南**:
2.配置檔案格式
方括號「」中表示組名,其下方是主機配置,乙個主機可以屬於多個不同的組。
組內引數通過「[組名:vars]」格式表示。
組的包含關係通過「[組名:children]」格式表示,其下方是成員組。
3.指定主機ssh埠
如果主機ssh埠不是預設22埠,可以在主機後新增「:埠」指明埠號,例如:abcd.example.com:9922
注:ansible使用paramiko進行ssh連線時,不會使用你ssh配置檔案中列出的埠,但是如果修改ansible使用openssh進行ssh連線時將會使用
4.指定主機別名
如果打算給主機起別名給ansible使用,格式如下
web1 ansible_ssh_port = 3333 ansible_ssh_host = 192.168.1.2
注:實際上這是在使用主機變數
5.指定主機範圍
可以按照如下格式對主機名中部分字元進行範圍匹配
[webservers]
www[01:50].yanruogu.com
[databases]
db-[a:f].yanruogu.com
6.inventory自帶變數說明
ansible_ssh_host #用於指定被管理的主機的真實ip
ansible_ssh_port #用於指定連線到被管理主機的ssh埠號,預設是22
ansible_ssh_user #ssh連線時預設使用的使用者名稱
ansible_ssh_pass #ssh連線時的密碼
ansible_sudo_pass #使用sudo連線使用者時的密碼
ansible_sudo_exec #如果sudo命令不在預設路徑,需要指定sudo命令路徑
ansible_ssh_private_key_file #秘鑰檔案路徑,秘鑰檔案如果不想使用ssh-agent管理時可以使用此選項
ansible_shell_type #目標系統的shell的型別,預設sh
ansible_connection #ssh 連線的型別: local ,
ssh , paramiko,在 ansible 1.2 之前預設是 paramiko ,後來智慧型選擇,優先使用基於 controlpersist 的 ssh (支援的前提)
ansible_python_interpreter #用來指定python直譯器的路徑,預設為/usr/bin/python 同樣可以指定ruby 、perl 的路徑
ansible_*_interpreter #其他直譯器路徑,用法與ansible_python_interpreter類似,這裡"*"可以是ruby或才perl等其他語言
使用方法例如:
[test]
192.168.1.1 ansible_ssh_user=root ansible_ssh_pass='p@ssw0rd'
192.168.1.2 ansible_ssh_user=breeze ansible_ssh_pass='123456'
192.168.1.3 ansible_ssh_user=bernie ansible_ssh_port=3055
ansible_ssh_pass='456789'
7.主機變數的使用
可以在主機後邊追加變數k/v,如:
8.組內變數的使用
通過「[組名:vars]」的方式定義組內變數
[test]
host1
host2
[test:vars]
ntp_server=192.168.1.10
proxy=192.168.1.20
9.組內包含與組內變數
[haidian]
web1
web2
[yizhuang]
web4
web3
[beijing:children]
haidian
yizhuang
[beijing:vars]
ntp_server=192.168.1.10
zabbix_server=192.168.1.10
[china:children]
beijing
shanghai
上面的示例中,指定了海淀機房有web1、web2;亦莊機房有web3、web4主機;又指定了乙個北京組代表北京地區資料中心,同時包含海淀和亦莊機房;為該組內的所有主機指定了2個vars變數。之後設定了乙個組中國組,包含北京和上海兩地資料中心。
注:vars變數主要用在ansible-playbook中,不支援ad-hoc。
10.單獨的變數檔案或目錄
在 inventory 主檔案中儲存所有的變數並不是最佳的方式。還可以儲存在獨立的檔案中,這些獨立檔案與 inventory 檔案保持關聯。
配置檔案名稱要跟主機或組名完全相同。
主機變數檔案應放在:/etc/ansible/host_vars
組內變數檔案應放在:/etc/ansible/ group_vars
例如建立檔案「/etc/ansible/group_vars/raleigh」來儲存raleigh組的組內變數
vim /etc/ansible/group_vars/raleigh
ntp_server: acme.example.org
database_server: storage.example.org
如果使用變數目錄,變數的目錄名要跟主機或組的名字完全相同,目錄內部的配置檔名可以自行命名。
注:分檔案定義變數的方式只適用於 ansible 1.4 及以上版本
例如建立目錄「/etc/ansible/group_vars/raleigh/」來儲存raleigh組的組內變數,那麼還需要再建立乙個「/etc/ansible/group_vars/raleigh/db_settings」檔案儲存raleigh組的資料庫配置相關變數
vim /etc/ansible/group_vars/raleigh/db_settings
ntp_server: acme.example.org
database_server: storage.example.org
ansible中的變數
ansible中變數的優先順序 命令列中的變數 yml檔案中的變數 roles目錄下vars目錄中的變數 roles目錄下default目錄中的變數 變數寫法 1.命令列變數 ansible playbook i hosts host playbooks echo.yml e key ooo val...
Centos中的ansible安裝
ansible簡單的說是乙個配置管理系統,只需要在管理伺服器上面安裝,就可以通過ssh遠端管理你的其它裝置了。客戶端機器上面需要有python2.5及以上環境,且不支援windows。ansible的使用場景非常廣泛,比如我們需要將乙份檔案拷貝到100臺伺服器,我們只需要呼叫ansible的copy...
使用Ansible中的playbook
playbook 是由乙個或多個play 組成的列表 playbook 檔案使用yaml來寫的 簡介 是一種表達資料序列的格式,類似xml 特點 可讀性好 和指令碼語言互動性號 易於實現 適用程式執行流梳理方式 可擴充套件性強 在檔案中用 開始 在檔案中用 結尾 次行一般書寫檔案內容 縮排嚴格 大小...