天天看點

03-Ansible管理指令

一、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 具有編寫簡單、可定制性高、靈活友善同時可固化日常所有操作的特點,運維人員應熟練掌握。