Ansible——script模塊

?

目錄

特點

參數總結

?使用?ansible?命令

1. 基本示例

2. 傳遞參數

3. 使用?creates?參數

4. 使用?removes?參數

?示例 Playbook 文件

?基本語法

1. 基本使用

2. 傳遞參數

3. 使用?creates?參數

4. 使用?removes?參數

5. 使用?register?捕獲輸出

6. 使用?args?指定參數


Ansible 的?script?模塊是用來在遠程主機上運行本地腳本文件的一個模塊。它將本地腳本文件復制到目標主機上并執行。這個模塊對于一些復雜操作性任務或者需要快速運行自定義腳本的場景非常有用。

特點

  • 腳本語言不限:可以是任何可執行的腳本,比如 Bash、Python、Perl 等。
  • 參數傳遞:允許傳遞參數給腳本。
  • 直接執行:無需考慮遠程主機的具體環境,直接在遠程主機上執行腳本。

?

參數總結

  1. chdir:

    • 描述:在執行腳本前更改到此目錄。
    • 類型:字符串
    • 默認值:無
  2. creates:

    • 描述:僅在指定文件不存在時執行腳本。
    • 類型:字符串
    • 默認值:無
  3. executable:

    • 描述:用于執行腳本的可執行程序(例如 bash, python, ruby 等)。
    • 類型:字符串
    • 默認值:無
  4. removes:

    • 描述:僅在指定文件存在時執行腳本。
    • 類型:字符串
    • 默認值:無
  5. stdin:

    • 描述:為腳本提供標準輸入。
    • 類型:字符串
    • 默認值:無
  6. stdin_add_newline:

    • 描述:如果為 yes,則在標準輸入數據末尾添加一個新行。
    • 類型:布爾值
    • 默認值:yes
  7. strip_empty_ends:

    • 描述:如果為 yes,則從標準輸入數據的兩端移除空行。
    • 類型:布爾值
    • 默認值:no
  8. cmd:

    • 描述:要執行的本地腳本的路徑和可選參數。
    • 類型:字符串或列表
    • 必需:是

?

?使用?ansible?命令

?

1. 基本示例

在遠程主機上運行本地腳本?my_script.sh

ansible all -m script -a "/path/to/my_script.sh"

2. 傳遞參數

在遠程主機上運行本地腳本?my_script.sh?并傳遞參數:

ansible all -m script -a "/path/to/my_script.sh --option value"

3. 使用?creates?參數

只有在遠程主機上不存在?/tmp/myfile?時才運行腳本:

ansible all -m script -a "creates=/tmp/myfile /path/to/my_script.sh"

4. 使用?removes?參數

只有在遠程主機上存在?/tmp/myfile?時才運行腳本:

ansible all -m script -a "removes=/tmp/myfile /path/to/my_script.sh"

?

?示例 Playbook 文件

?

?基本語法

一個典型的?script?模塊結構如下:

- name: Description of the taskscript: /path/to/local/script.sh

還可以添加多個可選參數,如?creates?和?removes,來條件化執行腳本。

1. 基本使用

在遠程主機上執行腳本?my_script.sh

---
- name: Run basic scripthosts: alltasks:- name: Execute the scriptscript: /path/to/my_script.sh

2. 傳遞參數

在遠程主機上執行腳本?my_script.sh?并傳遞參數:

---
- name: Run script with argumentshosts: alltasks:- name: Execute the script with argumentsscript: /path/to/my_script.sh --option value

3. 使用?creates?參數

只有在遠程主機上不存在?/tmp/myfile?文件時才執行腳本:

---
- name: Conditionally run script if file does not existhosts: alltasks:- name: Execute the script if file does not existscript:path: /path/to/my_script.shcreates: /tmp/myfile

4. 使用?removes?參數

只有在遠程主機上存在?/tmp/myfile?文件時才執行腳本:

---
- name: Conditionally run script if file existshosts: alltasks:- name: Execute the script if file existsscript:path: /path/to/my_script.shremoves: /tmp/myfile

5. 使用?register?捕獲輸出

捕獲腳本執行的輸出并在后續任務中使用:

---
- name: Capture script outputhosts: alltasks:- name: Run script and capture outputscript: /path/to/my_script.shregister: script_output- name: Print script outputdebug:var: script_output.stdout

6. 使用?args?指定參數

在腳本中指定額外參數:

---
- name: Run script with specific argumentshosts: alltasks:- name: Execute the script with multiple argumentsscript:path: /path/to/my_script.shargs:creates: /tmp/myfileremoves: /tmp/removefile

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/24469.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/24469.shtml
英文地址,請注明出處:http://en.pswp.cn/web/24469.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【Vue】sync修飾符

文章目錄 一、介紹二、語法三、代碼示例 一、介紹 作用:可以實現 子組件 與 父組件數據 的 雙向綁定,簡化代碼 簡單理解:子組件可以修改父組件傳過來的props值 特點:prop屬性名,可以自定義,非固定為valu…

如何安裝 CleanMyMac X 4.15.3破解版

CleanMyMac X 4.15.3破解版是一款專業的Mac系統清理軟件,可一鍵智能掃描清理mac系統日志緩存磁盤垃圾和多余語言安裝包,快速釋放電腦內存,輕松管理和升級Mac上的應用。同時CleanMyMac X 破解版可以強力卸載惡意軟件,修復系統漏洞&…

仿今日頭條的新聞資訊系統

軟件簡介 新聞資訊系統,前端基于 Uniapp、Uview,后端基于Ruoyi系統,代碼易讀易懂、界面簡潔美觀。一套前端代碼,同時支持微信小程序、Android、Ios應用等多種應用。 平臺簡介 新聞資訊系統,主要包括首頁、行業資訊、…

Adobe Illustrator 矢量圖設計軟件下載安裝,Illustrator 輕松創建各種矢量圖形

Adobe Illustrator,它不僅僅是一個簡單的圖形編輯工具,更是一個擁有豐富功能和強大性能的設計利器。 在這款軟件中,用戶可以通過各種精心設計的工具,輕松創建和編輯基于矢量路徑的圖形文件。這些矢量圖形不僅具有高度的可編輯性&a…

高中數學:數列-基礎概念

一、什么是數列? 一般地,我們把按照確定的順序排列的一列數稱為數列,數列中的每一個數叫做這個數列的項,數列的第一項稱為首項。 項數有限個的數列叫做有窮數列,項數無限個的數列叫做無窮數列。 二、一般形式 數列和…

Ubuntu20.04-SLAM軟件安裝

目錄 安裝環境安裝問題1.Ubuntu20.04在T440p上的安裝問題1.1 安裝后提示"x86/cpu:VMX(outside TXT) disabled by BIOS"1.2 ACPI Error:Needed type[Reference],found [Integer] 等錯誤1.3 ima: Error Communicating to TPM chip 2.中文輸入法-google pinyin3. gcc/cm…

計算機二級Access操作題總結——簡單應用

查詢設計 創建一個查詢,能夠在客人每次結賬時根據客人的姓名提示統計這個客人已住天數和應交金額,并顯示“姓名”、“房間號”、“已住天數”和“應交金額”,所建查詢命名為“qT2”。 注:輸入姓名時應提示“請輸入姓名”。已住天…

SpringBoot: 可執行jar的特殊邏輯

這一篇我們來看看Java代碼怎么操作zip文件(jar文件),然后SpringBoot的特殊處理,文章分為2部分 Zip API解釋,看看我們工具箱里有哪些工具能用SpringBoot的特殊處理,看看SpringBoot Jar和普通Jar的不同 1. Zip API解釋 1. ZipFil…

深度學習論文: Emerging Properties in Self-Supervised Vision Transformers

深度學習論文: Emerging Properties in Self-Supervised Vision Transformers Emerging Properties in Self-Supervised Vision Transformers PDF: https://arxiv.org/pdf/2104.14294v1 PyTorch代碼: https://github.com/shanglianlm0525/CvPytorch PyTorch代碼: https://githu…

Composition API函數

unref unref函數用于獲取響應式對象的原始值。如果傳入的是一個響應式對象,則返回其value屬性;如果傳入的是一個普通的JavaScript對象,則返回它本身。 unref函數在某些情況下很有用,例如在使用watchEffect函數時,可…

go語言實戰--基于Vue3+gin框架的實戰Cetide網項目(講解開發過程中的各種踩坑)

最近被要求學習go語言開發,也就做一個項目實戰鞏固一下,也分享一下關于gin框架的實戰項目 (后續應該還是會繼續學習Java,這一期還是做一個govue的) 經過一段時間的開發過后,感覺現在的開發效率要快不少了&…

傳統工科碩士想轉嵌入式,時間夠嗎?

在開始前剛好我有一些資料,是我根據網友給的問題精心整理了一份「嵌入式的資料從專業入門到高級教程」, 點個關注在評論區回復“888”之后私信回復“888”,全部無償共享給大家!!! 零基礎開始學&#xff0…

[NOVATEK] NT96580行車記錄儀功能學習筆記(持續更新~

一、u-Boot升級燈 運行u-Boot程序時LED燈閃爍,找到運行過程中一直在運行的函數在里面進行LED引腳電平的翻轉 宏定義 Z:\SunFan\AHD580\pip\na51055_PIP\BSP\u-boot\include\configs\nvt-na51055-evb.h Z:\SunFan\AHD580\pip\na51055_PIP\BSP\u-boot\drivers\mtd\nvt_flash_…

什么是JWT(Json-Web-Token)?JWT的用途和優勢是什么?

什么是JWT(Json-Web-Token)? JWT,全稱JSON Web Token,是一種開放標準(RFC 7519)。它定義了一種緊湊的、自包含的方式,用于在各方之間安全地傳輸信息。這種信息被設計成JSON對象格式…

簡介RESTful API和中間件Web API網關

從RESTful API開始 RESTful API(Representational State Transfer API)是一種設計Web服務的架構風格,它基于REST(Representational State Transfer)理論。REST是一種軟件架構風格,由Roy Fielding在其博士論文《Architectural Styles and the Design of Network-based So…

LeetCode 550, 380, 234

目錄 550. 游戲玩法分析 IV題目鏈接表要求知識點思路代碼 380. O(1) 時間插入、刪除和獲取隨機元素題目鏈接標簽思路代碼 234. 回文鏈表題目鏈接標簽思路代碼 550. 游戲玩法分析 IV 題目鏈接 550. 游戲玩法分析 IV 表 表Activity的字段為player_id,device_id&am…

Linux卸載殘留MySQL【帶圖文命令巨詳細】

Linux卸載殘留MySQL 1、檢查殘留mysql2、檢查并刪除殘留mysql依賴3、檢查是否自帶mariadb庫 1、檢查殘留mysql 如果殘留mysql組件,使用命令 rpm -e --nodeps 殘留組件名 按順序進行移除操作 #檢查系統是否殘留過mysql rpm -qa | grep mysql2、檢查并刪除殘留mysql…

k8s——Pod容器中的存儲方式及PV、PVC

一、Pod容器中的存儲方式 需要存儲方式前提:容器磁盤上的文件的生命周期是短暫的,這就使得在容器中運行重要應用時會出現一些問題。 首先,當容器崩潰時,kubelet 會重啟它,但是容器中的文件將丟失——容器以干凈的狀態&…

TensorRT 精度debug分析工具

tensorRT還提供了一套可用于engine生成過程中debug的工具,包括Polygraphy、ONNX GraphSurgeon和PyTorch-Quantization。這些小工具用處很大,值得花時間進一步研究。 Debug方法示例 polygraphy Polygraphy是TensorRT官方提供的一系列小工具合集&#x…

spring源碼解析-(1)關于Bean

什么是Bean? 是spring對所有注入到IoC容器中的類的統稱。 我們要注冊進入spirng的bean千奇百怪,所以spring必須需要使用一個統一的定義來標識bean,就有了接下來的BeandDefinition,通過名稱我們就可以知道,他是對bean…