天天看點

Ansible(二)ansible的安裝和配置檔案的解析

一   Ansible的安裝

      Ansible的安裝方式有多種多樣,本文以最簡單的方式來進行安裝,

     阿裡雲鏡像ansible和epel源,安裝省略!

ansible --version # 2.7.5版本的!
           

二    相關說明

#(1)必須用普通使用者遠端連接配接

# 建立普通使用者的身份

[[email protected] ~]$ id devops
uid=1001(devops) gid=1001(devops) groups=1001(devops)
           

說明:由于工作原理是把代碼複制到目标主機,在目标主機上執行,是以目标主機一定要有python!

說明:被管理端也建立普通使用者

# server2和server3做同樣的事情

[[email protected] ~]# useradd devops
[[email protected] ~]# passwd devops
Changing password for user devops.
New password: 
BAD PASSWORD: The password is shorter than 8 characters
Retype new password: 
passwd: all authentication tokens updated successfully.
[[email protected] ~]# id devops
uid=1000(devops) gid=1000(devops) groups=1000(devops)
           

三   進行免密認證

[[email protected] anisble]$ 

ssh-keygen 
ssh-copy-id server1:
ssh-copy-id server2:

# 注意測試
           

四    建立相關配置檔案

[[email protected] Desktop]$ tree anisble/
anisble/
├── ansible.cfg  # 配置檔案(順序-->先從目前指令執行目錄-->使用者的家目錄讀取--->全局讀取)
└── inventory    # 資源清單!
           
# ansible.cfg

[defaults]
#(1)資源清單的路徑
inventory = ./inventory
           
# inventory說明
[test]
172.25.2.1

[prod]
172.25.2.2
           

測試

[[email protected] anisble]$ ansible all -m ping
172.25.2.1 | SUCCESS => {
    "changed": false, 
    "ping": "pong"
}
172.25.2.2 | SUCCESS => {
    "changed": false, 
    "ping": "pong"
}
           

說明

ansible test -m copy -a "src=/etc/passwd dest=/tmp/passwd"

# test(資源清單)、-m copy(指定子產品)、-a(參數)
           

說明:預設是command子產品!

# /etc/sudoers 配置檔案修改,在真實的生産環境中沒有這麼大的權限!

93 devops  ALL=(ALL)       NOPASSWD: ALL

# mansger和server1和server2都做同樣的事情!
           

切換的說明

[defaults]
#(1)資源清單的路徑
inventory = ./inventory

# 需求:不想每次切換!

#安全的角度-->開放普通使用者的身份
[privilege_escalation]
#(1)是否可以sudo
become=True
#(2)采用sudo的身份
become_method=sudo
#(3)sudo後的使用者身份
become_user=root
#(4)sudo是否需要驗證密碼
become_ask_pass=False
           

等價:

ansible all -m ping -u devops -b
           

相關說明

-u(遠端主機的身份)

-u devops -b (遠端切換某一個使用者)

有時候需要擁有root具有的權限-->配置sudo的權限!

預設不會切換的,即使在用戶端主機中配置了sudoers,不會sudo切換使用者執行

預設普通使用者執行某些指令,必須加上sudo參數!

必須在server中聲明-b或者在配置檔案中書寫
           

顔色的說明:綠色(沒有發生變化)、黃色(變更)、紅色(報錯)、紫色(Warning)

關鍵:幂等機制的了解!

注意:Add-Hoc的方式不讀取資源清單的變量!

三    配置檔案的說明

(1)配置檔案

/etc/ansible
/etc/ansible/ansible.cfg
/etc/ansible/hosts
/etc/ansible/roles   # 自行下載下傳的roles
           

(2)可執行的二進制檔案

/usr/bin/ansible-vault    # 加密
 
/usr/bin/ansible          # add-hoc的指令

/usr/bin/ansible-galaxy   # 下載下傳playbook

/usr/bin/ansible-playbook # 運作playbook
           

(3)内置的python lib庫檔案

繼續閱讀