ansible 默認提供了不少模塊來供咱們使用。在 Linux 中,咱們能夠經過 ansible-doc -l 命令查看到當前 ansible 都支持哪些模塊,經過 ansible-doc -s 模塊名 又能夠查看該模塊有哪些參數可使用。shell
ansible '*' -m command -a 'uptime' '*':本身定義的主機 -m command:命令
# 指定節點上的權限,屬主和數組爲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 playbook.yml [options]
-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可獲得全部執行過程信息。