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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Ansible基本使用及常用模块详解

發布時間:2025/4/16 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Ansible基本使用及常用模块详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、ansible基本使用

定義主機組
定義被管理節點列表的文件/etc/ansible/hosts,在定義被管理節點的時候,可以單獨基于主機做定義,也可以將多個主機定義成一個主機組。
在上篇博文安裝部署ansible時候已經定義了一個主機組webservers,這里我再單獨定義一臺主機testser

[root@ser1 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub 10.220.5.114 [root@ser1 ~]# vim /etc/ansible/hosts [testser] <<<添加 10.220.5.114 <<<添加
使用ansible管理其他節點

格式:ansible <host> [options]
常用選項:

-m: 指定模塊名稱-a:指定模塊具體參數-s:以sudo的方式運行操作-i:指定被管理節點的主機列表-f:一批連接幾個主機進行操作(默認是5個)

在管理節點通過ansible在被管理節點執行命令
格式:ansible 目標 -m command -a "命令"
說明:

目標:目標可以是一個主機組,也可以是 /etc/ansible/hosts 文件中的一個或者多個主機,也可以是 all 表示所有-m command:表示這次ansible操作是基于command模塊實現-a "命令":表示是在被管理及誒單上要執行的命令

例子:
1.在webservers主機組上執行

[root@ser1 ~]# ansible webservers -m command -a "hostname" 10.220.5.113 | CHANGED | rc=0 >> ser310.220.5.112 | CHANGED | rc=0 >> ser2
  • 在所有主機上執行
  • [root@ser1 ~]# ansible all -m command -a "hostname" 10.220.5.112 | CHANGED | rc=0 >> ser210.220.5.113 | CHANGED | rc=0 >> ser310.220.5.114 | CHANGED | rc=0 >> ser4
  • 在指定的主機上執行命令
  • [root@ser1 ~]# ansible 10.220.5.114 -m command -a "hostname" 10.220.5.114 | CHANGED | rc=0 >> ser4

    二、常用模塊詳解

    查看ansible所支持的模塊信息

    [root@ser1 ~]# ansible-doc -l 【默認使用command模塊】

    查看一個模塊的使用幫助

    格式:ansible-doc -s 模塊名

    # 查看command模塊的使用幫助 [root@ser1 ~]# ansible-doc -s command

    1. command模塊
    默認模塊,在沒有-m指定的情況下默認使用-m command
    作用:在各個被管理節點上執行命令,但是不能傳遞參數和變量。

    2. corn模塊
    作用:在指定的時間運行指定的命令(計劃任務)
    字命令:

    state:present【創建任務】 absent【刪除任務】backup:對遠程主機上的原任務計劃內容修改之前做備份job:要執行的任務name:該任務的描述(必須項)user:以哪個用戶的身份運行minute:分鐘(0-59,*,*/2,……),不寫默認為*hour:小時(0-23,*,*/2,……),不寫默認為*day:日(1-31,*,*/2,……),不寫默認為*month:月(1-12,*,*/2,……),不寫默認為*weekday:周(0-7,*,……),不寫默認為*

    例子:每個兩分鐘在/tmp下的log.txt中追加一個123

    [root@ser1 ~]# ansible webservers -m cron -a 'minute="*/2" hour=* day=* month=* weekday=* job="echo 123 >>/tmp/log.txt" name="job1" state="present"' # 檢查一下 [root@ser1 ~]# ansible webservers -a "crontab -l"

    例子:每五分鐘所有的從節點來主節點同步一次時間

    [root@ser1 ~]# ansible all -m cron -a 'name="sync time from ser1" minute=*/5 job="/usr/sbin/ntpdate ser1"'

    3. group模塊
    作用:在指定節點上創建組
    例子:創建一個組組名為cx55887,gid為2018

    [root@ser1 ~]# ansible webservers -m group -a 'gid=2018 name=cx55887'

    4. user模塊
    作用:管理用戶
    可以使用ansible-doc -s user查看幫助,參數搜通俗易懂。
    例子:創建一個用戶名為cx55887,并加入到cx55887組中

    [root@ser1 ~]# ansible webservers -m user -a 'name=cx55887 group=cx55887 state=present'

    5. copy模塊
    作用:復制文件到遠程主機
    字命令:

    src:原文件路徑,可以是絕對路徑,也可以是相對路徑dest:目標文件路徑mode:指定權限backup:有目標文件存在的情況下,先對原文件做備份,然后進行覆蓋force:強制執行覆蓋操作owner:指定復制后的文件中的屬主content:替代src,也就是鍵一段字符串做為源,直接將這個內容寫到目標文件中directory_mode:遞歸的設定目錄的權限,默認為系統默認權限

    注意:src如果路徑是一個目錄,它將遞歸復制。在這種情況下,如果路徑使用"/“來結尾,則只復制目錄里的內容,如果沒有使用”/"來結尾,則包含目錄在內的整個內容全部復制,類似于rsync。
    例子:

    [root@ser1 ~]# ansible webservers -m copy -a 'src="/etc/passwd" dest=/tmp/passwd1 mode=777 owner=cx55887 backup=yes'

    6. service模塊
    作用:管理服務
    字命令:

    name:指定服務名稱arguments:給命令行提供一些選項 enabled:指定服務是否開機自啟動state:指定服務最后的狀態started stopped reloaded restartedrunlevel:指定運行級別

    例子:管理httpd

    [root@ser1 ~]# ansible all -a "systemctl status httpd" [root@ser1 ~]# ansible all -m service -a "name=httpd state=started enabled=on" [root@ser1 ~]# ansible all -a "ss -tnl"

    7. ping模塊
    作用:測試主機是否在線,主機如果在線,則回復pong
    例子:測試主機列表清單中的主機是否在線

    [root@ser1 ~]# ansible all -m ping

    8. file模塊
    作用:實現鹽城文件的管理操作
    字命令:

    owner:修改屬主group:修改屬組mode:修改權限follow:如果復制的文件是一個連接文件,那么復制以后依然是連接文件,而且和原始文件一樣,指向相同的文件path:指定目標路徑recurse:遞歸的設置文件的屬性,只對目錄有效--yes表示使用遞歸設置state:touch:創建一個新的空文件directory:創建一個新的目錄,當目錄存在時不會進行修改link:創建軟連接,結合src一起使用才有效hard:創建硬連接absent:刪除文件,目錄,軟連接src:當state=link時,要被連接文件的源路徑

    例子:

    # ansible all -m file -a 'state=touch path=/tmp/abc.def' # ansible all -m file -a 'state=link src=/tmp/abc.def path=/tmp/abc.def.ln' # ansible all -m file -a 'state=absent path=/tmp/abc.def' # ansible all -m file -a 'force=on state=absent path=/tmp/' # ansible all -m file -a 'force=on state=absent path=/tmp'

    9. shell模塊
    作用:用于在各被管理節點運行指定的命令,類似于command,但是可以執行復雜的命令,可以使用變量

    10. script模塊
    作用:講一個本地腳本傳遞到遠程主機上,并運行

    ansible websersers -m script -a '腳本名'

    11.yum模塊
    作用:管理遠程主機上的rpm包
    字命令:

    name:表示要安裝軟件包的名字state:表示安裝還是卸載presen:默認的,表示安裝lastest:安裝最新版本absent:表示刪除

    例子:

    # ansible webservers -m yum -a "name=lrzsz state=present"

    我在學習過程中常用的模塊差不多就這幾個,以后學習工作中遇到再補充。

    ------做運維之前很矯情的小年輕-----

    總結

    以上是生活随笔為你收集整理的Ansible基本使用及常用模块详解的全部內容,希望文章能夠幫你解決所遇到的問題。

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