一、Ansible 管理指令
Ansible 管理指令有如下幾個:
(1)ansible:這個指令是日常工作中使用率非常高的指令之一,主要用于臨時一次性操作;
(2)ansible-doc:Ansible 子產品文檔說明,針對每個子產品都有詳細的用法說明和應用案例介紹;
(3)ansible-galaxy:可以簡單的了解為 Github 或 PIP 的功能,是 Ansible 官方一個分享 role 的功能平台。可以通過 ansible-galaxy 指令很簡單的實作 role 的分享和安裝;
(4)ansible-playbook:是日常應用中使用頻率最高的指令,其工作機制是,通過讀取預先編寫好的playbook檔案實作批量管理;
(5)ansible-pull:Ansible 的另一種工作模式,pull 模式,Ansible 預設使用 push 模式;
(6)ansible-vault:主要用于配置檔案加密;
(7)ansible-console:讓使用者可以在 ansible-console 虛拟出來的終端上像 Shell 一樣使用 Ansible 内置的各種指令。
下面對常用的管理指令做介紹。
二、ansible 指令
ansible 是日常工作中使用率非常高的指令之一,其主要在如下場景使用:
(1)非固化需求
(2)臨時一次性操作
(3)二次開發接口調用
該指令使用方式如下:
ansible [options]
1
比如:工作中我臨時想檢視 web1 伺服器是否存活,或我想臨時複制本地的 /etc/fstab 到 web1 伺服器的 /tmp 目錄下做測試等等。
具體的指令使用如下:
檢查伺服器存活
ansible web1 -m ping
複制本地檔案到遠端
ansible web1 -m copy -a "src=/etc/fstab dest=/tmp/fstab owner=root group=root mode=644 backup=yes"
詳細參數可以檢視幫助:
[root@ansible-manager ~]# ansible -h
Usage: ansible <host-pattern> [options]
Define and run a single task 'playbook' against a set of hosts
Options:
-a MODULE_ARGS, --args=MODULE_ARGS
module arguments
--ask-vault-pass ask for vault password
-B SECONDS, --background=SECONDS
run asynchronously, failing after X seconds
(default=N/A)
-C, --check don't make any changes; instead, try to predict some
of the changes that may occur
-D, --diff when changing (small) files and templates, show the
differences in those files; works great with --check
-e EXTRA_VARS, --extra-vars=EXTRA_VARS
set additional variables as key=value or YAML/JSON, if
filename prepend with @
-f FORKS, --forks=FORKS
specify number of parallel processes to use
(default=5)
......
Some modules do not make sense in Ad-Hoc (include, meta, etc)
相關選項都有解釋,這裡不再詳述。
三、ansible-doc 指令
ansible-doc 是 Ansible 子產品文檔說明,針對每個子產品都有詳細的用法說明及應用案例介紹,功能和 Linux 系統 man 指令類似。該指令使用方式如下:
ansible-doc [options] [module...]
ansible-doc 指令後跟[options]參數或[子產品名],顯示子產品用法說明,具體示例如下:
列出支援的子產品
ansible-doc -l
ping 子產品功能說明
ansible-doc ping
四、ansible-playbook 指令
ansible-playbook 是日常應用中使用頻率最高的指令,其工作機制是通過讀取預先編寫好的 playbook檔案實作批量管理。要實作的功能與指令 ansible 是一樣的,可以了解為按一定條件組成的 ansible 任務集。
ansible-playbook 指令後跟 YML 格式的 playbook 檔案,執行事先編排好的任務集,指令使用方式如下:
ansible-playbook playbook.yml
具體示例如下:
執行 nginx.yml 這個 playbook 中定義的所有任務集
ansible-playbook nginx.yml
playbook 具有編寫簡單、可定制性高、靈活友善同時可固化日常所有操作的特點,運維人員應熟練掌握。