開(kāi)源,免費,跨平台的devops批量運維工(gōng)具,《卡死你(nǐ)3000》簡介
發布時(shí)間:2023-05-19 閱讀: 分享

大(dà)家好(hǎo)!

又到(dào)了(le)分享的時(shí)間,今天給大(dà)家分享一款,開(kāi)源,免費跨平台的devops批量運維工(gōng)具。讓我們先聽聽,作(zuò)者是怎麽吹的:

簡介

作(zuò)者道(dào):

開(kāi)源+免費+跨平台安裝+100%兼容shell,

跨平台:主控機可以安裝在win,linux上(shàng)。可以管理(lǐ)win,linux被控機。

類似于Puppet,Ansible,pipeline。号稱比ansible好(hǎo)10倍,具有批量遠程執行腳本,定時(shí)運行腳本的,devops運維工(gōng)具。運維手中的瑞士軍刀(dāo)!

devops批量運維工(gōng)具《卡死你(nǐ)3000》。

我道(dào):“先等等,名字咋這(zhè)麽怪呢(ne)?”

爲神馬叫《卡死你(nǐ)3000》?

作(zuò)者答(dá):名字而已,瞎編!

v1.0版開(kāi)發代号=《卡死你(nǐ)3000》,源于要你(nǐ)命3000。《卡死你(nǐ)3000》最大(dà)的好(hǎo)處之一,就是100%兼容你(nǐ)編寫的舊的bash,csh,zsh腳本。還有win上(shàng)的bat,vbs腳本等。

項目内還封裝了(le),姥姥語音(yīn),表情包鬥圖樂等。再加上(shàng)舊bat,bash腳本,緻力于3000個腳本工(gōng)具。。。

v2.0版開(kāi)發代号(已經發布)=《穿雲箭》

寓意:一支穿雲箭,千萬被控機,從(cóng)斧頭幫;)趕來(lái)相見。

我道(dào):“哦,我明(míng)白(bái)了(le)。原來(lái)3000是指,可以四處調用(yòng)各種腳本,工(gōng)具多的意思。”

注意:軟件正式名字叫《kaiiit家的飯店(diàn)》

那它是怎麽工(gōng)作(zuò)的?

作(zuò)者道(dào):

“它控制win被控機基于winrm協議(yì)。它控制linux被控機,基于ssh協議(yì)。”

【主控機】控制【被控機】基于【開(kāi)源 + 免費的】powershell語言。

那它怎麽比ansible好(hǎo)10倍呢(ne)?

作(zuò)者答(dá):

  • 1 《卡死你(nǐ)3000》控制win被控機無敵。無需安裝agent。

  • 2 腳本遠程傳遞變量參數時(shí),可以直傳 「對(duì)象」 ,此功能(néng)世界上(shàng)唯一!比其他(tā)批量運維工(gōng)具強一代!

$從(cóng)被控機返回的_對(duì)象結果_而不是字符串 = krun.ps1 { 被控機命令1 } -allparameter $主控機本地對(duì)象1,$主控機本地對(duì)象2

上(shàng)述【主控機腳本a.ps1】,把主控機上(shàng)的.net對(duì)象,或powershell對(duì)象【主控機本地對(duì)象1】,【主控機本地對(duì)象2】 傳遞到(dào)被控機,由【被控機命令1】接收參數, 執行結果對(duì)象,從(cóng)被控機返回到(dào)主控機變量【$從(cóng)被控機返回的_對(duì)象結果_而不是字符串】中。

大(dà)家都是面向對(duì)象編程語言的老(lǎo)司機,還需要我解釋 「遠程對(duì)象」 比字符串的好(hǎo)處嗎?

  • 3 卡死你(nǐ)3000調用(yòng)并100%兼容你(nǐ)的舊腳本,linux命令。

你(nǐ)舊的shell腳本,不管是.py,還是.sh,放(fàng)在主控機,然後在主控機腳本内寫上(shàng)kct 主控機路徑 被控機路徑,即可複制到(dào)被控機。比如你(nǐ)在卡死你(nǐ)3000腳本中寫:

bash -f /xxx/你(nǐ)的bash腳本

python -c /你(nǐ)的項目/b.py

還不明(míng)白(bái)?卡死你(nǐ)3000,100%兼容你(nǐ)已有的linux腳本,而ansible你(nǐ)要學它n多模塊。

yaml有如下(xià)缺點:

1 關鍵字不兼容。Ansible,阿裏雲的運維工(gōng)具雲助手,騰訊雲的藍鲸,都用(yòng)yaml,但(dàn)它們之間的關鍵字不兼容。

2 Yaml還有文(wén)本縮進問題,或空(kōng)格問題。

3 腳本套腳本像喝水(shuǐ)般容易,管道(dào)容易。Yaml套yaml難,yaml套腳本難。

4 bash中有for,cshell中有foreach,powershell中有for,foreach。For是shell腳本人最常用(yòng)的功能(néng)。

自(zì)打ansible來(lái)了(le)之後,它用(yòng)yaml關鍵字定義和(hé)jinjia2代替了(le)for。可以說for的腿被被打折了(le)。

5 管道(dào)傳值如“a腳本語言編寫的腳本1 | b腳本語言編寫的腳本1”,這(zhè)在基于yaml的語言中,難以實現(xiàn)。在基于腳本的卡死你(nǐ)3000中,天生支持。

6 還有必不可少的複制文(wén)件功能(néng),使用(yòng)起來(lái)也(yě)很(hěn)簡單。還支持跨平台win,linux文(wén)件互傳。

7 主控機支持win。win,linux被控機操作(zuò)一緻。用(yòng)win主控機時(shí)可以用(yòng)聲音(yīn),背景圖片報(bào)警。

簡單而言,腳本學用(yòng)簡單,用(yòng)途廣。《卡死你(nǐ)3000》和(hé)ansible,都用(yòng)powershell控制win,有一半是相同的。它們最大(dà)的區(qū)别是,卡死你(nǐ)3000基于腳本。而Ansible基于yaml。用(yòng)ansible,藍鲸等,就必須學習它的關鍵字,用(yòng)它的模塊。

作(zuò)爲批量運維工(gōng)具,它還支持定時(shí)任務,循環周期最短10秒鐘(zhōng),主要用(yòng)于監控應用(yòng),磁盤,内存等。

我還爲卡死你(nǐ)3000定時(shí)任務主控機,開(kāi)發了(le)主控機雙機高(gāo)可用(yòng)功能(néng)。高(gāo)可用(yòng)功能(néng)等。。

我道(dào):“嗯,挺能(néng)吹的,那麽”

它和(hé)shell相比,有哪些(xiē)好(hǎo)處呢(ne)?

作(zuò)者道(dào):

自(zì)動批量運維卻離不了(le)腳本。但(dàn)這(zhè)麽多年爲啥沒有shell的自(zì)動批量運維項目?

爲啥讓ansible成氣候了(le)?隻因單純的shell功能(néng)有限,不足以支撐整個自(zì)動批量運維項目。

讓我嘗試分析出幾個原因:

  • 1 ansible項目爲啥linux下(xià)調用(yòng)py,powershell,而不調用(yòng)shell?有一點可能(néng)是shell變量是非面向對(duì)象腳本。Py,powershell是面向對(duì)象腳本,powershell有日期,布爾,精度數值,隊列等變量類型。

支持管道(dào)傳遞強類型對(duì)象!請(qǐng)看(kàn):

'abc'| foreach-object {$_.toupper()}

遠程傳遞強類型對(duì)象!請(qǐng)看(kàn):

$從(cóng)遠程返回的日期型對(duì)象 = krun -powershell代碼塊 { get-date }

  • 2 powershell,卡死你(nǐ)3000,中有多線程調用(yòng)腳本功能(néng)。多線程帶來(lái)了(le)快(kuài)速,輕量,大(dà)批量的好(hǎo)處,也(yě)帶來(lái)了(le)不如多進程穩定的壞處。線程的講解以後再說。

  • 3 win上(shàng)powershell強,win沒有自(zì)帶sshd,也(yě)是一個問題。

  • 4 shell基于ssh傳遞多行腳本代碼塊不行,傳遞腳本文(wén)件麻煩。多層傳遞沒有。卡死你(nǐ)3000隻需要在主控機上(shàng)指定腳本文(wén)件名,多行腳本塊,則自(zì)動複制到(dào)每台被控機執行。從(cóng)a機傳遞代碼塊到(dào)b機,b機再到(dào)c機,很(hěn)容易。用(yòng)于穿透堡壘機。

  • 5 更嚴謹,開(kāi)發效率高(gāo)!支持在win上(shàng)經vscode+ssh模塊遠程開(kāi)發,遠程調試,單步,斷點,執行鼠标選中代碼。

你(nǐ)道(dào):

主頁在哪?求你(nǐ)來(lái)點幹貨吧?

圖片

注意:上(shàng)述lsbkj命令,已經改爲lsnode

https://gitee.com/chuanjiao10/kasini3000

https://gitee.com/chuanjiao10/kasini3000_agent_linux #linux一鍵安裝powershell

主控機支持:

win10,win2012r2,win2016,win2019,centos7,centos8,ubuntu1404(但(dàn)不建議(yì)使用(yòng)),ubuntu1604,ubuntu1804,ubuntu2004,debian8(但(dàn)不建議(yì)使用(yòng)),debian9,debian10,alpine linux3.8----3.11,不支持centos6。

被控機支持:

win7,win2008r2,win10,win2012,win2016,win2019,centos7,centos8,ubuntu1404,ubuntu1604,ubuntu1804,ubuntu2004,debian8,debian9,debian10。alpine linux3.8----3.11,樹莓派linux,樹莓派win,不支持centos6。

excel版 命令手冊:

https://gitee.com/chuanjiao10/kasini3000/tree/master/docs

腳本例子:

https://gitee.com/chuanjiao10/kasini3000/wikis/卡死你(nǐ)3000腳本例子

常見問題:

https://gitee.com/chuanjiao10/kasini3000/wikis/卡死你(nǐ)3000腳本編寫要求和(hé)常見問題

卡死你(nǐ)3000主控機安裝:

https://gitee.com/chuanjiao10/kasini3000/wikis/安裝win版卡死你(nǐ)3000主控機

https://gitee.com/chuanjiao10/kasini3000/wikis/安裝linux版卡死你(nǐ)3000主控機

卡死你(nǐ)3000官方技術支持群。qq群:700816263

使用(yòng):

1 按照https://gitee.com/chuanjiao10/kasini3000/tree/master/docs/examples/nodelist.csv

編寫被控機ip、端口、賬戶、密碼、并保存在c:\ProgramData\kasini3000\nodelist.csv

這(zhè)裏以win主控機爲例:

2 運行pwsh。運行c:\ProgramData\kasini3000\k-console.ps1

k-console.ps1有2個快(kuài)捷方式。kc=用(yòng)穩定版pwsh。kcp=用(yòng)psv7版pwsh,建議(yì)用(yòng)kcp

3 cdip 192.168.1.2 #選中被控機

4 kct #複制文(wén)件,從(cóng)主控機到(dào)被控機

5 kcf #複制文(wén)件,從(cóng)被控機到(dào)主控機

6 gtnode #進入被控機命令行

7 .\krun.ps1 -腳本文(wén)件名 d:\xx.ps1 # 在遠程的,cdip選中的,被控機上(shàng)】運行【主控機上(shàng)的d盤的腳本】。

8 .\krun.ps1 -powershell代碼塊 {ls /tmp} # 在【遠程的選中被控機上(shàng)】運行【代碼塊】。

9 .\k-commit.ps1 -腳本文(wén)件名 d:\xx.ps1 #在後台運行腳本。

10 .\k-commit.ps1 -powershell代碼塊 {ls /tmp} #在後台運行ps代碼塊。

11 kl,kt。#輸出後台運行的代碼結果。

12 安裝psv6後,用(yòng).\k-commit-rs.ps1。它是線程級别的,它作(zuò)用(yòng)和(hé).\k-commit.ps1相同。

13 支持進程級别,線程級别,的定時(shí)任務。

後記

很(hěn)久以前,在一個虛拟位面上(shàng),有一個【馮-諾依曼計(jì)算(suàn)機國】,國内有一個大(dà)家庭叫做【腳本命令行】。家庭中的bash,csh,zsh,bat,vbs,powershll兄弟們分工(gōng)明(míng)确,互相合作(zuò),兄弟們用(yòng)【管道(dào)】傳遞消息。

突然間,家裏來(lái)了(le)三頭大(dà)怪獸,它們是【阿裏雲助手=盒馬大(dà)聖】、【騰訊雲藍鲸=鲸角大(dà)王】、【ansible=歪果仁矮力大(dà)仙】

它們不分工(gōng),難合作(zuò),不用(yòng)【管道(dào)】,矮力大(dà)仙還通過python放(fàng)出【幺蛾子jinjia2】,jinjia2怪一上(shàng)來(lái)就把for,foreach的腿打斷了(le),555,多麽善良好(hǎo)用(yòng)的for啊!!!在此危機時(shí)刻,小(xiǎo)弟《卡死你(nǐ)》拿出3000種武器,有鞋式吹風(fēng)機,有光照才發光手電筒,姥姥語音(yīn),表情包鬥圖樂,一一嘗試。。。

單純的shell強麽?單純的ssh行麽?單純的yaml不麻煩麽?用(yòng)途廣麽?這(zhè)就是卡死你(nǐ)3000存在的意義。


13905190502 南京市玄武區(qū)洪武北路188号長發數碼大(dà)廈11樓E座
友情鏈接
百度 網絡安全和(hé)信息化委員會(huì) FreeBuf網絡安全行業門(mén)戶

分享:
Copyright © 2020-2022 南京明(míng)科網絡科技有限公司 版權所有  
技術支持:飛(fēi)酷網絡