一、ansible常用命令
一、ansible命令的常用參數
ansible 默認提供了很多模塊來供我們使用。在 Linux 中,我們可以通過 ansible-doc -l 命令查看到當前 ansible 都支持哪些模塊,通過 ansible-doc -s 模塊名 又可以查看該模塊有哪些參數可以使用。
1、命令語法
ansible '*' -m command -a 'uptime' '*':自己定義的主機 -m command:命令
2、命令常用參數
# 指定節點上的權限,屬主和數組為root ansible '*' -m file -a "dest=/tmp/t.sh mode=755 owner=root group=root" #指定節點上定義一個計划任務,每隔3分鍾到主控端更新一次時間 ansible '*' -m cron -a 'name="custom job" minute=*/3 hour=* day=* month=* weekday=* job="/usr/sbin/ntpdate 172.16.254.139"' # 指定節點上創建一個組名為aaa,gid為2017的組 ansible all -m group -a 'gid=2017 name=a' # 在節點上創建一個用戶aaa,組為aaa ansible all -m user -a 'name=aaa groups=aaa state=present' 刪除用戶示例 ansible all -m user -a 'name=aaa groups=aaa remove=yes' # 在節點上安裝httpd ansible all -m yum -a "state=present name=httpd" # 在節點上啟動服務,並開機自啟動 ansible all -m service -a 'name=httpd state=started enabled=yes' # 檢查主機連接 ansible '*' -m ping # 執行遠程命令 ansible '*' -m command -a 'uptime' # 執行主控端腳本 ansible '*' -m script -a '/root/test.sh' # 執行遠程主機的腳本 ansible '*' -m shell -a 'ps aux|grep zabbix' # 類似shell ansible '*' -m raw -a "ps aux|grep zabbix|awk '{print \$2}'" # 創建軟鏈接 ansible '*' -m file -a "src=/etc/resolv.conf dest=/tmp/resolv.conf state=link" # 刪除軟鏈接 ansible '*' -m file -a "path=/tmp/resolv.conf state=absent" # 復制文件到遠程服務器 ansible '*' -m copy -a "src=/etc/ansible/ansible.cfg dest=/tmp/ansible.cfg owner=root group=root mode=0644" # 在節點上運行hostname nsible all -m raw -a 'hostname|tee' # 將指定url上的文件下載到/tmp下 ansible all -m get_url -a 'url=http://10.1.1.116/favicon.ico dest=/tmp'
二、ansible-playbook的常用參數
1、命令語法
ansible-playbook playbook.yml [options]
2、命令的常用參數
-u REMOTE_USER, --user=REMOTE_USER # ssh 連接的用戶名 -k, --ask-pass #ssh登錄認證密碼 -s, --sudo #sudo 到root用戶,相當於Linux系統下的sudo命令 -U SUDO_USER, --sudo-user=SUDO_USER #sudo 到對應的用戶 -K, --ask-sudo-pass #用戶的密碼(—sudo時使用)
-T TIMEOUT, --timeout=TIMEOUT # ssh 連接超時,默認 10 秒 -C, --check # 指定該參數后,執行 playbook 文件不會真正去執行,而是模擬執行一遍,然后輸出本次執行會對遠程主機造成的修改 -e EXTRA_VARS, --extra-vars=EXTRA_VARS # 設置額外的變量如:key=value 形式 或者 YAML or JSON,以空格分隔變量,或用多個-e -f FORKS, --forks=FORKS # 進程並發處理,默認 5 -i INVENTORY, --inventory-file=INVENTORY # 指定 hosts 文件路徑,默認 default=/etc/ansible/hosts -l SUBSET, --limit=SUBSET # 指定一個 pattern,對- hosts:匹配到的主機再過濾一次 --list-hosts # 只打印有哪些主機會執行這個 playbook 文件,不是實際執行該 playbook --list-tasks # 列出該 playbook 中會被執行的 task --private-key=PRIVATE_KEY_FILE # 私鑰路徑 --step # 同一時間只執行一個 task,每個 task 執行前都會提示確認一遍 --syntax-check # 只檢測 playbook 文件語法是否有問題,不會執行該 playbook -t TAGS, --tags=TAGS #當 play 和 task 的 tag 為該參數指定的值時才執行,多個 tag 以逗號分隔 --skip-tags=SKIP_TAGS # 當 play 和 task 的 tag 不匹配該參數指定的值時,才執行 -v, --verbose #輸出更詳細的執行過程信息,-vvv可得到所有執行過程信息。
更詳細鏈接:http://blog.51cto.com/dengxi/1733536
