日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Ansible相关工具介绍、实例演示

發布時間:2025/1/21 编程问答 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Ansible相关工具介绍、实例演示 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Ansible相關工具

  • /usr/bin/ansible 主程序,臨時命令執行工具
  • /usr/bin/ansible-doc 查看配置文檔,模塊功能查看工具
  • /usr/bin/ansible-galaxy 下載/上傳優秀代碼或Roles模塊的官網平臺
  • /usr/bin/ansible-playbook 定制自動化任務,編排劇本工具
  • /usr/bin/ansible-pull 遠程執行命令的工具
  • /usr/bin/ansible-vault 文件加密工具
  • /usr/bin/ansible-console 基于Console界面與用戶交互的執行工具

利用ansible實現管理的主要方式:

  • Ad-Hoc 即利用ansible命令,主要用于臨時命令使用場景
  • Ansible-playbook 主要用于長期規劃好的,大型項目的場景,需要有前期的規劃過程
ansible-doc

此工具用來顯示模塊幫助

格式

ansible-doc [options] [module...] -l, --list #列出可用模塊 -s, --snippet #顯示指定模塊的playbook片段

范例:

#列出所有模塊 ansible-doc -l #查看指定模塊幫助用法 ansible-doc ping #查看指定模塊幫助用法 ansible-doc -s ping
ansible

此工具通過ssh協議,實現對遠程主機的配置管理、應用部署、任務執行等功能

建議:使用此工具前,先配置ansible主控端能基于密鑰認證的方式聯系各個被管理節點

范例:利用sshpass批量實現基于key驗證

#!/bin/bash ssh-keygen -f /root/.ssh/id_rsa -P '' NET=192.168.100 export SSHPASS=magedu for IP in {1..200};do sshpass -e ssh-copy-id NET.IP done

格式:

ansible <host-pattern> [-m module_name] [-a args]

選項說明:

--version #顯示版本 -m module #指定模塊,默認為command -v #詳細過程 –vv -vvv更詳細 --list-hosts #顯示主機列表,可簡寫 --list -k, --ask-pass #提示輸入ssh連接密碼,默認Key驗證 -C, --check #檢查,并不執行 -T, --timeout=TIMEOUT #執行命令的超時時間,默認10s -u, --user=REMOTE_USER #執行遠程執行的用戶 -b, --become #代替舊版的sudo 切換 --become-user=USERNAME #指定sudo的runas用戶,默認為root -K, --ask-become-pass #提示輸入sudo時的口令

ansible的Host-pattern
用于匹配被控制的主機的列表
All :表示所有Inventory中的所有主機

范例

ansible all –m ping

*:通配符

ansible “*” -m ping ansible 192.168.1.* -m ping ansible “srvs” -m ping

或關系

ansible “websrvs:appsrvs” -m ping ansible “192.168.1.10:192.168.1.20” -m ping

邏輯與

#在websrvs組并且在dbsrvs組中的主機 ansible “websrvs:&dbsrvs” –m ping

邏輯非

#在websrvs組,但不在dbsrvs組中的主機 #注意:此處為單引號 ansible ‘websrvs:!dbsrvs’ –m ping

綜合邏輯

ansible ‘websrvs:dbsrvs:&appsrvs:!ftpsrvs’ –m ping

正則表達式

ansible “websrvs:dbsrvs” –m ping ansible “~(web|db).*\.magedu\.com” –m ping

ansible命令執行過程

1.加載自己的配置文件 默認/etc/ansible/ansible.cfg

2.加載自己對應的模塊文件,如:command

3.通過ansible將模塊或命令生成對應的臨時py文件,并將該文件傳輸至遠程服務器的對應執行用戶$HOME/.ansible/tmp/ansible-tmp-數字/XXX.PY文件

4.給文件+x執行

5.執行并返回結果

6.刪除臨時py文件,退出

ansible 的執行狀態:

[root@centos8 ~]#grep -A 14 '\[colors\]' /etc/ansible/ansible.cfg [colors] #highlight = white #verbose = blue #warn = bright purple #error = red #debug = dark gray #deprecate = purple #skip = cyan #unreachable = red #ok = green #changed = yellow #diff_add = green #diff_remove = red #diff_lines = cyan
  • 綠色:執行成功并且不需要做改變的操作
  • 黃色:執行成功并且對目標主機做變更
  • 紅色:執行失敗

ansible使用范例

#以wang用戶執行ping存活檢測 ansible all -m ping -u wang -k #以wang sudo至root執行ping存活檢測 ansible all -m ping -u wang -k -b #以wang sudo至mage用戶執行ping存活檢測 ansible all -m ping -u wang -k -b --become-user=mage #以wang sudo至root用戶執行ls ansible all -m command -u wang -a 'ls /root' -b --become-user=root -k -K
ansible-playbook

此工具用于執行編寫好的 playbook 任務

范例:

ansible-playbook hello.yml cat hello.yml --- #hello world yml file - hosts: websrvsremote_user: root tasks:- name: hello worldcommand: /usr/bin/wall hello world
ansible-vault

此工具可以用于加密解密yml文件

格式:

ansible-vault [create|decrypt|edit|encrypt|rekey|view]

范例

ansible-vault encrypt hello.yml #加密 ansible-vault decrypt hello.yml #解密 ansible-vault view hello.yml #查看 ansible-vault edit hello.yml #編輯加密文件 ansible-vault rekey hello.yml #修改口令 ansible-vault create new.yml #創建新文件
ansible-console

此工具可交互執行命令,支持tab,ansible 2.0+新增

提示符格式:

執行用戶@當前操作的主機組 (當前組的主機數量)[f:并發數]$

常用子命令:

  • 設置并發數: forks n 例如: forks 10
  • 切換組: cd 主機組 例如: cd web
  • 列出當前組主機列表: list
  • 列出所有的內置命令: ?或help

范例

[root@ansible ~]#ansible-console Welcome to the ansible console. Type help or ? to list commands.root@all (3)[f:5]list 10.0.0.8 10.0.0.7 10.0.0.6 root@all (3)[f:5] cd websrvs root@websrvs (2)[f:5]list 10.0.0.7 10.0.0.8 root@websrvs (2)[f:5] forks 10 root@websrvs (2)[f:10]cd appsrvs root@appsrvs (2)[f:5] yum name=httpd state=present root@appsrvs (2)[f:5]$ service name=httpd state=started
ansible-galaxy

此工具會連接 https://galaxy.ansible.com 下載相應的roles

范例:

#列出所有已安裝的galaxy ansible-galaxy list #安裝galaxy ansible-galaxy install geerlingguy.mysql ansible-galaxy install geerlingguy.redis #刪除galaxy ansible-galaxy remove geerlingguy.redis

本文鏈接:http://www.yunweipai.com/34643.html

總結

以上是生活随笔為你收集整理的Ansible相关工具介绍、实例演示的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。