Ansible Ad-Hoc(點對點模式)
官方文件:https://docs.ansible.com/ansible/latest/command_guide/intro_adhoc.html
简介
Ad-hoc命令是一种临时输入并执行的命令,通常用于测试和调试。它们不需要永久保存,简单来说,ad-hoc就是“即时命令”。
常用模块
1、command 模块(默认模块)
默认模块,没有shell强大,基本上shell模块都可以支持command模块的功能。
【1】帮助
ansible-doc command # 推荐使用下面这个 ansible-doc command -s
【2】参数解释
- free_form——必须参数,指定需要远程执行的命令。需要说明一点,free_form 参数与其他参数(如果想要使用一个参数,那么则需要为这个参数赋值,也就是name=value模式)并不相同。比如,当我们想要在远程主机上执行 ls 命令时,我们并不需要写成”free_form=ls” ,这样写反而是错误的,因为并没有任何参数的名字是 free_form,当我们想要在远程主机中执行 ls 命令时,直接写成 ls 即可。因为 command 模块的作用是执行命令,所以,任何一个可以在远程主机上执行的命令都可以被称为 free_form。
- chdir——此参数的作用就是指定一个目录,在执行对应的命令之前,会先进入到 chdir 参数指定的目录中。
- creates——看到 creates,你可能会从字面上理解这个参数,但是使用这个参数并不会帮助我们创建文件,它的作用是当指定的文件存在时,就不执行对应命令,比如,如果 /testdir/test文件存在,就不执行我们指定的命令。
- removes——与 creates 参数的作用正好相反,它的作用是当指定的文件不存在时,就不执行对应命令,比如,如果 /testdir/tests 文件不存在,就不执行我们指定的命令,此参数并不会帮助我们删除文件。
【3】示例演示
# 上面命令表示在 web 主机上执行 ls 命令,因为使用的是 root 用户,所以默认情况下,ls 出的结果是 web 主机中 root 用户家目录中的文件列表。 ansible web -m command -a "ls" # chdir 参数表示执行命令之前,会先进入到指定的目录中,所以上面命令表示查看 web 主机上 /testdir 目录中的文件列表,返回显示有2个文件。 ansible web -m command -a "chdir=/testdir ls" # 下面命令表示 /testdir/testfile1 文件存在于远程主机中,则不执行对应命令。/testdir/testfile3 不存在,才执行”echo test”命令。 ansible web -m command -a "creates=/testdir/testfile1 echo test" # 下面命令表示 /testdir/testfile3 文件不存在于远程主机中,则不执行对应命令。/testdir/testfile1 存在,才执行”echo test”命令。 ansible web -m command -a "removes=/testdir/testfile1 echo test"
2、shell 模块
shell模块 [执行远程主机的shell/python等脚本]。
【1】查看帮助
ansible-doc shell -s
【2】示例演示
# -o:一行显示 # 安装httpd ansible web -m shell -a 'yum -y install httpd' -o # 查看时间 ansible web -m shell -a 'uptime' -o
3、script 模块
script模块 [在远程主机执行主控端的shell/python等脚本 ]。
【1】查看帮助
ansible-doc script -s
【2】参数解释
- free_form——必须参数,指定需要执行的脚本,脚本位于 ansible 管理主机本地,并没有具体的一个参数名叫 free_form,具体解释请参考 command 模块。
- chdir——此参数的作用就是指定一个远程主机中的目录,在执行对应的脚本之前,会先进入到 chdir 参数指定的目录中。
- creates——使用此参数指定一个远程主机中的文件,当指定的文件存在时,就不执行对应脚本,可参考 command 模块中的解释。
- removes——使用此参数指定一个远程主机中的文件,当指定的文件不存在时,就不执行对应脚本,可参考 command 模块中的解释。
【3】示例演示
# 下面命令表示 ansible 主机中的 /testdir/testscript.sh 脚本将在 web 主机中执行,执行此脚本之前,会先进入到 web 主机中的 /opt 目录 ansible web -m script -a "chdir=/opt /testdir/testscript.sh" # 下面命令表示,web主机中的 /testdir/testfile1文件已经存在,ansible 主机中的 /testdir/testscript.sh 脚本将不会在 web 主机中执行。 ansible web -m script -a "creates=/testdir/testfile1 /testdir/testscript.sh" # 下面命令表示,web 主机中的 /testdir/testfile1 文件存在,ansible 主机中的 /testdir/testscript.sh 脚本则会在 web 主机中执行。 ansible ansible-demo3 -m script -a "removes=/testdir/testfile1 /testdir/testscript.sh"
4、raw 模块
raw模块 [类似于command模块、支持管道传递]。
【1】查看帮助
ansible-doc raw -s
【2】示例演示
ansible web -m raw -a "ifconfig eth0 |sed -n 2p |awk '{print $2}' |awk -F: '{print $2}'"
5、copy 模块
copy 模块 从主控端复制文件到被控端。
【1】查看帮助
ansible-doc copy -s
【2】示例演示
# -a,--args:后面接参数 ansible web -m copy -a 'src=/etc/ansible/hosts dest=/tmp/hosts owner=root group=bin mode=777' # backup=yes/no:文件存在且文件内容不一样是否备份,默认不备份 ansible web -m copy -a 'src=/etc/ansible/hosts dest=/tmp/hosts owner=root group=bin mode=777 backup=yes'
6、fetch 模块
copy 模块从被控端复制文件到主控端,正好跟copy相反。
【1】查看帮助
ansible-doc fetch -s
【2】示例演示
# 跟copy支持的参数差不多,src:远端主机的目录,dest:主控端目录,其实真正存放的目录在:/tmp/192.168.182.129/tmp/up.sh,会按每台主机分组存放 #This `must' be a file, not a directory:只支持单个文件获取 ansible 192.168.182.129 -m fetch -a "src=/etc/fstab dest=/testdir/ansible/"
7、unarchive 模块(解包模块)
unarchive 模块是解包模块。
【1】查看帮助
ansible-doc unarchive -s
【2】参数解释
- copy——默认为yes,当copy=yes,那么拷贝的文件是从ansible主机复制到远程主机上的,如果设置为copy=no,那么会在远程主机上寻找src源文件。
- src——源路径,可以是ansible主机上的路径,也可以是远程主机上的路径,如果是远程主机上的路径,则需要设置copy=no。
- dest——远程主机上的目标路径。
- mode——设置解压缩后的文件权限。
【3】示例演示
ansible 192.168.182.129 -m unarchive -a 'src=/testdir/ansible/data.tar.gz dest=/tmp/tmp/'
8、archive模块(打包模块)
unarchive 模块是打包模块。
【1】查看帮助
ansible-doc archive -s
【2】示例演示
# path:主控端目录,format:压缩格式,dest:被控端目录文件' ansible 192.168.182.129 -m archive -a 'path=/tmp/ format=gz dest=/tmp/tmp/t.tar.gz'
9、user 模块
【1】查看帮助
ansible-doc user -s
【2】示例演示
# 创建用户(present:默认,可以不写) ansible web -m user -a 'name=test state=present' # 删除用户(absent) ansible web -m user -a 'name=test state=absent' # 修改密码 # 步骤一、生成加密密码 echo '777777'|openssl passwd -1 -stdin # 步骤二、修改秘密 ansible web -m user -a 'name=test password="$1$Jo5FD9Jr$2QB.BuybbtR35ga4O5o8N."' # 修改shell ansible web -m user -a 'name=test shell=/sbin/noglogin append=yes'
10、group 模块
【1】查看帮助
ansible-doc group -s
【2】示例演示
# 创建 ansible 192.168.182.129 -m group -a 'name=testgroup system=yes' # 删除 ansible 192.168.182.129 -m group -a 'name=testgroup state=absent'
11、yum 模块
【1】查看帮助
ansible-doc yum -s
【2】示例演示
# 升级所有包 ansible web -m yum -a 'name="*" state=latest' # 安装apache ansible web -m yum -a 'name="httpd" state=latest'
12、service 模块
【1】查看帮助
ansible-doc service -s
【2】示例演示
ansible web -m service -a 'name=httpd state=started' ansible web -m service -a 'name=httpd state=started enabled=yes' ansible web -m service -a 'name=httpd state=stopped' ansible web -m service -a 'name=httpd state=restarted' ansible web -m service -a 'name=httpd state=started enabled=no'
13、file 模块
【1】查看帮助
ansible-doc file -s
【2】示例演示
# 创建文件 ansible web -m file -a 'path=/tmp/88.txt mode=777 state=touch' # 创建目录 ansible web -m file -a 'path=/tmp/99 mode=777 state=directory' # 删除 ansible web -m file -a 'path=/tmp/99 state=absent'
14、setup 模块
【1】查看帮助
ansible-doc setup -s
【2】示例演示
ansible web -m setup ansible web -m setup -a 'filter=ansible_all_ipv4_addresses'
15、cron 模块
【1】查看帮助
ansible-doc cron -s
【2】示例演示
# 创建定时任务 ansible 192.168.182.129 -m cron -a 'minute=* weekday=1,3,5,6,7 job="/usr/bin/wall FBI warning" name=warningcron' # 关闭定时任务 ansible 192.168.182.129 -m cron -a 'disabled=true job="/usr/bin/wall FBI warning" name=warningcron' # 删除定时任务 ansible 192.168.182.129 -m cron -a ' job="/usr/bin/wall FBI warning" name=warningcron state=absent'
16、hostname 模块
【1】查看帮助
ansible-doc hostname -s
【2】示例演示
ansible 192.168.182.129 -m hostname -a 'name=192.168.182.129'
以上是Ansible Ad-Hoc(點對點模式)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題
![WLAN擴充模組已停止[修復]](https://img.php.cn/upload/article/000/465/014/170832352052603.gif?x-oss-process=image/resize,m_fill,h_207,w_330)
如果您的Windows電腦上的WLAN擴充模組出現問題,可能會導致您與網際網路中斷連線。這種情況常常讓人感到困擾,但幸運的是,本文提供了一些簡單的建議,可以幫助您解決這個問題,讓您的無線連線重新正常運作。修復WLAN擴充模組已停止如果您的Windows電腦上的WLAN可擴充性模組已停止運作,請依照下列建議進行修復:執行網路和Internet故障排除程式停用並重新啟用無線網路連線重新啟動WLAN自動設定服務修改電源選項修改高級電源設定重新安裝網路適配器驅動程式運行一些網路命令現在,讓我們來詳細看

本文詳細介紹了解決事件ID10000的方法,該事件表明無線區域網路擴充模組無法啟動。在Windows11/10PC的事件日誌中可能會顯示此錯誤。 WLAN可擴充性模組是Windows的一個元件,允許獨立硬體供應商(IHV)和獨立軟體供應商(ISV)為使用者提供客製化的無線網路特性和功能。它透過增加Windows預設功能來擴充本機Windows網路元件的功能。在作業系統載入網路元件時,WLAN可擴充性模組會作為初始化的一部分啟動。如果無線區域網路擴充模組遇到問題無法啟動,您可能會在事件檢視器的日誌中看到錯誤消

一、sys模組簡介前面介紹的os模組主要面向作業系統,而本篇的sys模組則主要針對的是Python解釋器。 sys模組是Python自帶的模組,它是與Python解釋器互動的一個介面。 sys 模組提供了許多函數和變數來處理 Python 執行環境的不同部分。二、sys模組常用方法透過dir()方法可以查看sys模組中帶有哪些方法:import sys print(dir(sys))1.sys.argv-取得命令列參數sys.argv作用是實作從程式外部向程式傳遞參數,它能夠取得命令列參數列

前言本文繼續來介紹Python集合模組,這次主要簡明扼要的介紹其內的命名元組,即namedtuple的使用。閒話少敘,我們開始-記得按讚、追蹤和轉發哦~ ^_^創建命名元組Python集合中的命名元組類namedTuples為元組中的每個位置賦予意義,並增強代碼的可讀性和描述性。它們可以在任何使用常規元組的地方使用,並且增加了透過名稱而不是位置索引方式存取欄位的能力。其來自Python內建模組collections。其使用的常規語法方式為:import collections XxNamedT

你好,我是somenzz,可以叫我徵哥。 Python的import是非常直覺的,但即使這樣,有時你會發現,明明套件就在那裡,我們仍會遇到ModuleNotFoundError,明明相對路徑非常正確,就是報錯ImportError:attemptedrelativeimportwithnoknownparentpackage導入同一個目錄的模組和不同的目錄的模組是完全不同的,本文透過分析使用import經常遇到的一些問題,來幫助你輕鬆搞定import,據此,你可以輕鬆創建屬

所有資料在開始時都會自動分配一個「DOB」(出生日期)。因此,在某些時候處理資料時不可避免地會遇到日期和時間資料。本教學將帶您了解Python中的datetime模組以及使用一些外圍函式庫,如pandas和pytz。在Python中,任何與日期和時間有關的事情都由datetime模組處理,它將模組進一步分為5個不同的類別。類別只是與物件相對應的資料類型。下圖總結了Python中的5個日期時間類別以及常用的屬性和範例。 3個有用的片段1.將字串轉換為日期時間格式,也許是使用datet

Ansible工作原理從上面的圖可以了解到:管理端支援local、ssh、zeromq三種方式連接被管理端,預設使用基於ssh的連接,這部分對應上面架構圖中的連接模組;可以按應用類型等方式進行HostInventory(主機清單)分類,管理節點透過各類模組實現對應的操作,單一模組,單一指令的批次執行,我們可以稱為ad-hoc;管理節點可以透過playbooks實作多個task的集合實作一類功能,如web服務的安裝部署、資料庫伺服器的批次備份等。 playbooks我們可以簡單的理解為,系統透過

在CTR預估中,主流都採用特徵embedding+MLP的方式,其中特徵非常關鍵。然而對於相同的特徵,在不同的樣本中,表徵是相同的,這種方式輸入到下游模型,會限制模型的表達能力。為了解決這個問題,CTR預估領域提出了一系列相關工作,稱為特徵增強模組。特徵增強模組根據不同的樣本,對embedding層的輸出結果進行一次矯正,以適應不同樣本的特徵表示,提升模型的表達能力。最近,復旦大學和微軟亞洲研究院合作發布了一篇關於特徵增強工作的綜述,比較了不同特徵增強模組的實現方法及其效果。現在,我們來介紹一
