自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Ansible-配置文件與Inventory文件

開發(fā) 開發(fā)工具
這篇著重介紹Ansible的配置文件和Inventory文件。

在??Ansible入門??中介紹了Ansible的工作機制,這篇著重介紹Ansible的配置文件和Inventory文件。

使用Ansible一個好的習(xí)慣是將一個具體任務(wù)組織在單獨的目錄里,這樣不會和別的配置任務(wù)發(fā)生沖突,排查故障時也方便定位。比如安裝redis的任務(wù),建立一個新的目錄:/ansible/redis,并在目錄中創(chuàng)建文件ansible.cfg和hosts。

配置文件

ansible.cfg是Ansible的配置文件,用來控制ansible的行為。配置文件可以出現(xiàn)在很多地方,它的優(yōu)先級順序如下:

  • ANSIBLE_CONFIG (一個環(huán)境變量)。
  • ansible.cfg (位于當(dāng)前目錄中)。
  • .ansible.cfg (位于用戶的家目錄中)。
  • /etc/ansible/ansible.cfg。

推薦使用第二種方式,將配置文件存放在當(dāng)前路徑中,不同的配置任務(wù)使用不同的配置文件。一個最簡的ansible.cfg文件:

[defaults]
host_key_checking = False # SSH連接時不校驗?zāi)繕?biāo)主機的指紋
inventory = hosts # 指定inventory文件

第三行很關(guān)鍵,指定操作目標(biāo)主機的清單文件。ansible連接遠程主機時默認使用當(dāng)前登錄系統(tǒng)用戶,如果你以用戶aneirin登錄安裝ansible命令的主機,當(dāng)需要連接遠端主機執(zhí)行任務(wù)時,ansible也是以用戶aneirin登錄遠端主機的。

實際工作中,配置一個專門的用戶,這個用戶在所管理的服務(wù)器中都存在,配置使用公鑰登錄每臺服務(wù)器,免密執(zhí)行需root權(quán)限的命令,這樣可以省掉不少的麻煩。但前提是ansible主機需絕對安全,否則不要這樣做。

inventory文件

這個文件中定義Ansible要操作的目標(biāo)主機,

[redis]
192.168.52.130
192.168.52.131:2222
[ntpd]
192.168.52.132
192.168.52.133
[linux:children]
redis
ntpd
[linux:vars]
ansible_ssh_user = aneirin

實際環(huán)境中,肯定有不止一臺服務(wù)器需要同時做配置,比如安裝Redis,這時可以定義一個Redis主機組,然后將目標(biāo)主機的IP地址填寫上去,如果SSH連接配置了非22的端口,可以直接寫到IP地址后面,用冒號隔開。

將多個主機組放到一個更大的主機組,使用[大主機組:children]的寫法,上面inventory文件將redis和ntpd主機組放到了linux主機組中,方便ansible執(zhí)行一些通用的配置。

最后兩行針對主機組定義的變量,這些變量有些是可以定義在ansible配置文件中的,有些是為了在Playbook中使用(關(guān)于Playbook放到后面的講解中)。

命令使用

/ansible/redis目錄包含了ansible.cfg和hosts文件,就可以執(zhí)行ansible的ad hoc命令了。

[aneirin@host redis]$ ansible linux -m shell -a 'uptime'
192.168.52.131 | CHANGED | rc=0 >>
18:23:48 up 4:48, 2 users, load average: 0.51, 0.40, 0.35
192.168.52.132 | CHANGED | rc=0 >>
18:23:48 up 4:48, 2 users, load average: 0.25, 0.22, 0.21
192.168.52.128 | CHANGED | rc=0 >>
18:23:51 up 1 day, 4:05, 2 users, load average: 0.38, 0.12, 0.08

ad hoc命令執(zhí)行起來比較直接了當(dāng),比如要給大量的主機安裝一個服務(wù)或者查詢服務(wù)器的主機名這類工作使用ad hoc命令比較方便,ad hoc命令的缺點是不能重用,只能完成簡單的工作。

安裝Redis:

[aneirin@host redis]$ ansible redis -m yum -a 'name=redis state=present'
192.168.52.131 | CHANGED => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": true,
"changes": {
"installed": [
"redis"
]
},
"msg": "",
"rc": 0,
......
}

要得到上面的結(jié)果,上面的Ansible配置文件需要增加幾行。

[privilege_escalation]
become = True
become_method = sudo
become_ask_pass = False


責(zé)任編輯:姜華 來源: 今日頭條
相關(guān)推薦

2025-04-14 08:20:00

Ansible?自動化運維自動化

2010-01-07 17:16:19

Ubuntu MySQ

2011-01-13 16:27:26

Linux配置文件

2011-01-19 14:00:21

2010-12-27 14:59:31

Outlook 配置文

2010-03-01 15:26:18

Linux配置文件

2010-01-15 10:36:49

CentOS yum配

2010-12-28 16:35:32

Outlook 配置文

2011-03-25 17:13:37

Nagios配置文件

2010-08-05 14:36:07

NFS服務(wù)

2010-05-05 16:14:09

Unix管理

2009-09-22 10:23:15

Hibernate配置

2011-01-21 15:08:45

Sendmail

2011-01-21 15:27:10

Sendmail

2009-06-17 14:10:30

Spring配置文件

2011-02-25 16:39:34

proftpd配置文件

2011-04-01 16:30:49

Nagios

2011-03-28 15:52:16

Nagios配置文件

2011-03-03 09:14:38

PureFTPd

2009-07-09 15:55:18

WebWork配置文件
點贊
收藏

51CTO技術(shù)棧公眾號