无码人妻丰满熟妇奶水区码,麻豆一区区三,亚洲日韩欧美精品综合,亚洲无码地址

Golang實現(xiàn)ansible自動運(yùn)維(golang ansible)

簡介

ansible是自動化運(yùn)維工具,基于Python開發(fā)。

ansible目前針對golang提供對應(yīng)的SDK、API之類的。

我們這里可以采用直接調(diào)用ansible-playbook這個命令執(zhí)行我們的任務(wù)。

Golang實現(xiàn)ansible自動運(yùn)維(golang ansible)

python

ansible

Golang實現(xiàn)ansible自動運(yùn)維(golang ansible)

ansible

利用golang的os/exec來執(zhí)行ansible-playbook這個命令,實現(xiàn)變量的拼接,由于我習(xí)慣將對象存在hosts這個變量里面,因此操作的時候需要指定hosts這個變量。

package ansible?import ( "os/exec" "strings" "time")?// RunPlayBook 執(zhí)行通過ansible-playbook命令執(zhí)行ansible任務(wù)func RunPlayBook(ansiblePath, inventory, yamlfile string, vars []string) (result string, ok bool) { startTime := time.Now() commandStr := []string{ansiblePath, "--ssh-common-args='-o StrictHostKeyChecking=no'", "-i", inventory, yamlfile} for _, k := range vars { commandStr = append(commandStr, "-e") commandStr = append(commandStr, k) } // fmt.Println(commandStr) command := exec.Command(commandStr[0], commandStr[1:]...) errString := "" output, err := command.CombinedOutput() if err != nil { errString = "ERROR: " err.Error() } // fmt.Println(string(output)) recapFlag := False // ok := false for _, line := range strings.Split(string(output), "n") { if strings.TrimSpace(line) == "" { continue } if strings.HasPrefix(line, "PLAY RECAP *") { recapFlag = true } if recapFlag { if strings.Contains(line, "unreachable=0") && strings.Contains(line, "failed=0") { ok = true } } } return strings.Join(commandStr, " ") "n " errString "n " string(output) "n=======================================n開始時間:" startTime.Format("2006-01-02 15:04:05") "n結(jié)束時間:" time.Now().Format("2006-01-02 15:04:05") "n耗時:" time.Now().Sub(startTime).String(), ok}?

測試

準(zhǔn)備playbook文件

vim /data/ansible/test.yaml

做一個簡單的測試,將要執(zhí)行的對象放到hosts這個變量里面

- name: 測試ansible任務(wù) hosts: "{{ hosts }}" remote_user: root gather_facts: False tasks:   - name: hostname     command: hostname     register: hostname   - name: echo     debug:       msg: "get hostname from {{ hostname }} by {{ powerby }} "

Golang實現(xiàn)ansible自動運(yùn)維(golang ansible)

coding

Go執(zhí)行文件

package main?import ( "ansible/ansible" "fmt")?func main() { result, ok := ansible.RunPlayBook("/data/apps/python3/bin/ansible-playbook", "/etc/ansible/hosts", "/data/ansible/test.yaml", []string{ "hosts=127.0.0.1", "powerby=Golang", }) if ok { fmt.Println("執(zhí)行成功") } else { fmt.Println("執(zhí)行失敗") } fmt.Println(result)}?

執(zhí)行輸出

執(zhí)行成功/data/apps/python3/bin/ansible-playbook --ssh-common-args='-o StrictHostKeyChecking=no' -i /etc/ansible/hosts /data/ansible/test.yaml -e hosts=127.0.0.1 -e powerby=Golang [WARNING]: Found variable using reserved name: hosts?PLAY [測試ansible任務(wù)] *************************************************************?TASK [hostname] ****************************************************************changed: [127.0.0.1]?TASK [echo] ********************************************************************ok: [127.0.0.1] => {    "msg": "get hostname from {'cmd': ['hostname'], 'stdout': 'tosomeone', 'stderr': '', 'rc': 0, 'start': '2020-08-20 22:23:29.851614', 'end': '2020-08-20 22:23:29.852629', 'delta': '0:00:00.001015', 'changed': True, 'stdout_lines': ['linuxopcai'], 'stderr_lines': [], 'failed': False} by Golang "}?PLAY RECAP *********************************************************************127.0.0.1                 : ok=2    changed=1    unreachable=0    failed=0   ??=======================================開始時間:2020-08-20 22:23:28結(jié)束時間:2020-08-20 22:23:29耗時:1.067408099s

總結(jié)

Golang實現(xiàn)ansible自動運(yùn)維(golang ansible)

golang

由于歷史原因,很多任務(wù)都還是ansible的任務(wù),只能采用這種方式進(jìn)行過度。

在Go的生態(tài)中,大家有什么推薦的批量自動化任務(wù)的包或者工具呢?

版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點(diǎn)僅代表作者本人。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 舉報,一經(jīng)查實,本站將立刻刪除。

(0)
上一篇 2023年5月14日 上午9:40
下一篇 2023年5月14日 上午9:56

相關(guān)推薦

  • 科研項目小組計劃怎么寫

    科研項目小組計劃怎么寫 在開始一項科研項目之前,建立一個高效、協(xié)作、團(tuán)結(jié)的小組是非常重要的。一個小組需要有明確的目標(biāo)和分工,同時還需要有一個良好的溝通和協(xié)作機(jī)制。下面,我將詳細(xì)介紹…

    科研百科 2025年4月15日
    2
  • 倉儲管理系統(tǒng)軟件下載

    倉儲管理系統(tǒng)軟件下載 倉儲管理系統(tǒng)軟件是一種用于管理倉儲物流的軟件,可以幫助企業(yè)更好地管理庫存,提高生產(chǎn)效率,降低成本。倉儲管理系統(tǒng)軟件下載是為企業(yè)提供下載倉儲管理系統(tǒng)軟件的服務(wù)。…

    科研百科 2024年9月30日
    4
  • 課題項目費(fèi)用名目

    課題項目費(fèi)用名目 課題項目費(fèi)用是我們進(jìn)行學(xué)術(shù)研究時必不可少的一部分,它主要用于支付研究過程中所需的費(fèi)用,如差旅費(fèi)、設(shè)備租賃費(fèi)、實驗室租賃費(fèi)、數(shù)據(jù)收集費(fèi)、文獻(xiàn)檢索費(fèi)等。但是,我們往往…

    科研百科 2024年12月9日
    5
  • 張家界廣播電視臺:擦亮黨建品牌 爭當(dāng)“四個能手”

    張家界廣播電視臺:擦亮黨建品牌 爭當(dāng)“四個能手” 品牌創(chuàng)建背景 張家界市廣播電視臺堅持以習(xí)近平新時代中國特色社會主義思想為指導(dǎo),堅決貫徹落實新時代黨的建設(shè)總要求,全面落實中央、省委…

    科研百科 2022年12月31日
    695
  • 科研項目倫理申請資料

    科研項目倫理申請資料 隨著科技的不斷發(fā)展,科研項目也越來越受到人們的重視。然而,科研項目涉及到的研究內(nèi)容和實驗操作可能會對社會和個人產(chǎn)生不良影響,因此,科研項目的倫理管理也變得越來…

    科研百科 2025年2月28日
    5
  • 福州大學(xué)科研項目管理費(fèi)福州大學(xué)科研項目管理費(fèi)

    福州大學(xué)科研項目管理費(fèi) 科研項目管理費(fèi)是福州大學(xué)用于支持科研項目的一種費(fèi)用。該費(fèi)用主要用于支付研究人員的薪酬、實驗室設(shè)備、交通費(fèi)用等。福州大學(xué)科研項目管理費(fèi)的使用情況進(jìn)行監(jiān)管,確保…

    科研百科 2024年9月12日
    4
  • 項目管理哪個系統(tǒng)好些

    項目管理哪個系統(tǒng)好些 隨著數(shù)字化時代的到來,越來越多的公司開始采用項目管理系統(tǒng)來輔助他們進(jìn)行項目管理。目前市面上有許多不同的項目管理系統(tǒng),哪一個更好取決于公司的項目需求和預(yù)算。 一…

    科研百科 2024年12月13日
    1
  • 科研項目材料泄露

    科研項目材料泄露 近年來,隨著科技的不斷發(fā)展,許多科研項目都得到了廣泛的研究。這些項目涉及到許多科學(xué)領(lǐng)域,包括自然科學(xué)、社會科學(xué)和工程技術(shù)等。然而,隨著項目的推進(jìn),一些研究人員可能…

    科研百科 2025年3月2日
    0
  • 項目工程管理方法及其施工要點(diǎn)(含全套開發(fā)流程圖)(施工項目管理的基本方法)

    項目工程管理內(nèi)容 一、制定項目管理目標(biāo) 安全管理目標(biāo)——國家標(biāo)準(zhǔn)(JGJ59—2011)、企業(yè)標(biāo)準(zhǔn); 工期進(jìn)度目標(biāo)——企業(yè)標(biāo)準(zhǔn)、項目資金效益; 工程質(zhì)量目標(biāo)——國家及行業(yè)標(biāo)準(zhǔn)、企業(yè)…

    科研百科 2022年11月30日
    371
  • 廣西大學(xué)農(nóng)學(xué)院獲得科研項目廣西大學(xué)農(nóng)學(xué)院獲得科研項目

    廣西大學(xué)農(nóng)學(xué)院獲得科研項目 近日,廣西大學(xué)農(nóng)學(xué)院成功獲得多項科研項目,這是學(xué)院近年來發(fā)展的重要成果之一。這些項目涵蓋了多個領(lǐng)域,包括農(nóng)業(yè)科學(xué)、生態(tài)學(xué)、植物保護(hù)、農(nóng)業(yè)信息技術(shù)等,將為…

    科研百科 2024年9月8日
    1
三级黄色小说在线免费观看| 精品一区二区三区中文字幕| 亚州一一色爱| 韩国AV在线播放| 日韩无码不卡片| 日韩av九一| 久久久夜夜夜夜夜狠狠躁| 99熟女不卡| 久久亚洲精品国产剧请片| 麻豆AⅤ黄片免费| 大香焦久久伊人| 日韩av不卡高清一区| 亚洲久久天堂最新地址| 美女福利视频在线网站| 欧美日韩国产综合素质色色色 | 在线视频好吊妞hd| 日韩亚洲精品人妻福利| 一洞双插视频在线播放| 天天天天天天精品| 欧美熟妇一二区A级| 香蕉成人免费在线看| 欧美美女性感大胸www内射| 在线天堂日韩| 美女逼逼视频免费观看| 日本韩国自拍偷拍一区二区三区| 天天摸日日操一区二区| 国产成人二区AV| 欧美激情日日日日日日日日| 国产欧美日韩综合精| 美女大秀福利网| 欧美老熟女60色| 亚洲麻豆人妻中文字幕| 农村激情三级丝袜理论| 加勒比视频一区二区三区四区| 亚洲色吊丝| 日本久久一区二| 好叼妞这里都是精品| 日本精品久久一区二区三区| 久久亚洲高清视频| 高清无码_区=区三区| 91日韩不卡无码|