windows下使用salt安装软件
https://docs.saltstack.com/en/latest/topics/windows/windows-package-manager.html
可以看官網(wǎng)文檔,本人英文差,翻譯不好,諒解
在2015.8.0及更高版本中,Windows Software Repository緩存是在Salt Minion上編譯的
SaltStack Windows軟件資源庫提供了一個軟件包管理器和軟件資源庫,類似于Linux上的yum和apt提供的資源庫。該存儲庫可以使用遠(yuǎn)程Windows系統(tǒng)上的安裝程序來安裝軟件。
?
In many senses, the operation is similar to that of the other package managers salt is aware of:
the?pkg.installed?and similar states work on Windows.
the?pkg.install?and similar module functions work on Windows.
和yum的區(qū)別
1,存儲庫元數(shù)據(jù)(SLS文件)通過salt或git托管。
2,軟件包可以從salt倉庫,git倉庫或http(s)或ftp URL下載。
3,包之間的依賴關(guān)系需要手動管理。
使用之前的要求是:GitPython 0.3或更高版本,或者在Salt mast上安裝libgit 0.20.0或更高版本的pygit2 0.20.3。Windows軟件包定義是使用Git下載和更新的。
默認(rèn)情況下salt不會進(jìn)行分發(fā)用于安裝Windows軟件包的SLS文件,需要運(yùn)行以下命令以初始化您的Salt主機(jī)上的存儲庫:
salt-run winrepo.update_git_reposSYNC REPO TO WINDOWS MINIONS
Run?pkg.refresh_db?on each of your Windows minions to synchronize the package repository.
salt -G'os : windows'pkg.refresh_db
接下來就可以安裝windows軟件
顯示已安裝的軟件包? ? ??salt -G'os : windows'pkg.list_pkgs
您可以使用Salt pkg模塊查詢軟件包的可用版本? ??salt winminion pkg.list_available firefox
安裝最新版本的Firefox salt winminion pkg.install'firefox '
卸載WINDOWS軟件
使用pkg模塊卸載軟件
salt winminion pkg.remove firefox salt winminion pkg.purge firefoxNote
pkg.purge?just executes?pkg.remove?on Windows. At some point in the future?pkg.purge?may direct the installer to remove all configs and settings for software packages that support that option
?
存儲庫位置
Salt維護(hù)SLS文件的存儲庫來安裝大量的Windows軟件包:
- 2015.8.0及以后的版本:https://github.com/saltstack/salt-winrepo-ng
- 早期版本:https://github.com/saltstack/salt-winrepo
默認(rèn)情況下,這些存儲庫被鏡像到/srv/salt/win/repo-ng?和/srv/salt/win/repo。
通過設(shè)置winrepo_dir_ng和winrepo_dir選項(xiàng),可以在主配置文件中更改此位置?。
MAINTAINING WINDOWS REPO DEFINITIONS IN GIT REPOSITORIES
可以托管在一個或多個Git存儲庫中,默認(rèn)存儲庫由SaltStack托管在GitHub上。這些包括各種開源軟件項(xiàng)目的軟件定義文件。這些軟件定義文件是.sls文件。有兩個默認(rèn)的存儲庫:salt-winrepo和salt-winrepo-ng。salt-winrepo?包含舊版本(舊版本2015.8.0)的軟件定義文件。salt-winrepo-ng是為更新的奴才(2015.8.0和更新)。
每個軟件定義文件都包含salt在安裝該軟件所需的所有信息,包括安裝程序文件的HTTP或FTP位置,用于靜默安裝的所需命令等,?Anyone is welcome to send a pull request to this repo to add new package definitions. The repos can be browsed here:?salt-winrepo?salt-winrepo-ng
Note
The newer software definition files are run through the salt's parser which allows for the use of jinja.
通過修改或擴(kuò)展winrepo_remotes和?winrepo_remotes_ng選項(xiàng),配置主服務(wù)器可以搜索包定義的那些git存儲庫。
Important
winrepo_remotes?was called?win_gitrepos?in Salt versions earlier than 2015.8.0
軟件包定義通過運(yùn)行winrepo.update_git_reposrunner?從online存儲庫中取出?。該命令在主服務(wù)器上運(yùn)行:
salt-run winrepo.update_git_repos
This will pull down the software definition files for older minions (salt-winrepo) and new minions (salt-winrepo-ng). They are stored in the?file_roots?under?win/repo/salt-winrepo?andwin/repo-ng/salt-winrepo-ng?respectively.
重要
如果您有自定義的軟件定義文件,而這些軟件定義文件不是在版本庫中維護(hù)的,那么應(yīng)該將這些文件存儲在win/repo較舊的版本和?win/repo-ng較新版本的版本中。這樣做的原因是,內(nèi)容win/repo/salt-winrepo和win/repo-ng/salt-winrepo-ng在每次運(yùn)行時清除winrepo.update_git_repos。
此外,當(dāng)您運(yùn)行winrepo.genrepo和pkg.refresh_db下的全部內(nèi)容win/repo和win/repo-ng,包括所有子目錄,用于創(chuàng)建msgpack文件
The next step (if you have older minions) is to create the msgpack file for the repo (winrepo.p). This is done by running the?winrepo.genrepo?runner. This is also run on the master:
?salt-run winrepo.genrepo
Note
If you have only 2015.8.0 and newer minions, you no longer need to run?salt-run?winrepo.genrepo?on the master.
最后,您需要通過運(yùn)行該pkg.refresh_db命令來刷新minion數(shù)據(jù)庫?。這也在master上運(yùn)行:
salt '*' pkg.refresh_db
On older minions (older than 2015.8.0) this will copy the winrepo.p file down to the minion. On newer minions (2015.8.0 and newer) this will copy all the software definition files (.sls) down to the minion and then create the msgpack file (winrepo.p) locally. The reason this is done locally is because the jinja needs to be parsed using the minion's grains.
每次在master服務(wù)器上修改軟件定義文件時,無論是通過運(yùn)行,修改現(xiàn)有文件,還是通過創(chuàng)建自己的文件,都需要刷新minion上的數(shù)據(jù)庫,?For older minions, that means running?salt-run?winrepo.genrepo?and thensalt?'*'?pkg.refresh_db. For newer minions (2015.8.0 and newer) it is just?salt?'*'?pkg.refresh_db.
注意
如果這個winrepo.genrepo或者pkg.refresh_db失敗了,那么在一個軟件定義文件中,這可能是一個jinja?問題。這將導(dǎo)致操作停止。您需要修復(fù)語法,才能成功創(chuàng)建msgpack文件。
要禁用其中一個repo,請將其設(shè)置[]為主配置中的空白列表。例如,要禁用winrepo_remotes在主配置文件中設(shè)置以下內(nèi)容:winrepo_remotes:[]
創(chuàng)建一個包定義SLS文件
包定義文件是一個yaml文件,其中包含使用salt安裝一個軟件所需的所有信息。它定義了有關(guān)軟件包的信息,包括版本,全名,安裝程序和卸載程序所需的標(biāo)志,是否使用Windows任務(wù)計(jì)劃程序安裝軟件包,以及如何查找安裝軟件包等。
看看Firefox的這個例子:
firefox:'17.0.1':installer: 'salt://win/repo/firefox/English/Firefox Setup 17.0.1.exe' full_name: Mozilla Firefox 17.0.1 (x86 en-US) locale: en_US reboot: False install_flags: '-ms' uninstaller: '%ProgramFiles(x86)%/Mozilla Firefox/uninstall/helper.exe' uninstall_flags: '/S' '16.0.2': installer: 'salt://win/repo/firefox/English/Firefox Setup 16.0.2.exe' full_name: Mozilla Firefox 16.0.2 (x86 en-US) locale: en_US reboot: False install_flags: '-ms' uninstaller: '%ProgramFiles(x86)%/Mozilla Firefox/uninstall/helper.exe' uninstall_flags: '/S' '15.0.1': installer: 'salt://win/repo/firefox/English/Firefox Setup 15.0.1.exe' full_name: Mozilla Firefox 15.0.1 (x86 en-US) locale: en_US reboot: False install_flags: '-ms' uninstaller: '%ProgramFiles(x86)%/Mozilla Firefox/uninstall/helper.exe' uninstall_flags: '/S'每個軟件定義文件都以該軟件的軟件包名稱開頭。如上例所示firefox。下一行縮進(jìn)兩個空格,并包含要定義的版本。如上例所示,軟件定義文件可以為同一個軟件定義多個版本。該版本后面的行縮進(jìn)了兩個空格,并包含安裝該軟件包所需的全部信息。
警告
軟件包名稱和full_name軟件存儲庫中的所有其他軟件包必須是唯一的。
版本行是要安裝的軟件包的版本。當(dāng)您需要安裝某個軟件的特定版本時使用它。
警告
版本必須用引號括起來,否則yaml解析器會刪除尾隨的零。
注意
有以前版本不可用的獨(dú)特情況。以Google Chrome為例。只有一個網(wǎng)址提供了Google Chrome的獨(dú)立安裝。(https://dl.google.com/edgedl/chrome/install/GoogleChromeStandaloneEnterprise.msi)當(dāng)新版本發(fā)布時,網(wǎng)址只是指向新版本。要處理這些情況,請將版本設(shè)置為最新版本。Salt會在URL上安裝Chrome版本并報(bào)告該版本。這是一個例子:
chrome:latest:full_name: 'Google Chrome'installer: 'https://dl.google.com/edgedl/chrome/install/GoogleChromeStandaloneEnterprise.msi'install_flags: '/qn /norestart'uninstaller: 'https://dl.google.com/edgedl/chrome/install/GoogleChromeStandaloneEnterprise.msi'uninstall_flags: '/qn /norestart'msiexec: Truelocale: en_USreboot: False| ? | 軟件的全名,如控制面板中的“程序和功能”所示。您也可以通過手動安裝軟件包然后運(yùn)行pkg.list_pkgs來獲取此信息。以下是來自pkg.list_pkgs以下輸出的示例: |
?
salt 'test-2008' pkg.list_pkgs test-2008----------7-Zip 9.20 (x64 edition):9.20.00.0Microsoft .NET Framework 4 Client Profile:4.0.30319,4.0.30319Microsoft .NET Framework 4 Extended:4.0.30319,4.0.30319Microsoft Visual C++ 2008 Redistributable - x64 9.0.21022: 9.0.21022 Mozilla Firefox 17.0.1 (x86 en-US): 17.0.1 Mozilla Maintenance Service: 17.0.1 NSClient++ (x64): 0.3.8.76 Notepad++: 6.4.2 Salt Minion 0.16.0: 0.16.0注意Firefox的全名:Mozilla Firefox 17.0.0(x86 en-US)。這正是full_name軟件定義文件中的參數(shù)。
| ? | 安裝包所使用的EXE或MSI的路徑。。這可以是路徑或URL。如果它是一個URL或一個salt路徑(salt://),那么這個包將被本地緩存,然后執(zhí)行。如果它是磁盤或文件共享上的文件的路徑,它將直接執(zhí)行。 |
| ? | 任何需要傳遞給安裝程序的標(biāo)志使其執(zhí)行無提示安裝。這些通??梢酝ㄟ^添加/??或/h從命令行運(yùn)行安裝程序來找到。在WPKG項(xiàng)目的wiki上可以找到找到這些靜默安裝標(biāo)志的很好的資源: |
如果安裝程序正在等待用戶輸入,salt將不會返回,因此這些是非常重要的。
| ? | 用于卸載該軟件的程序的路徑。這可以是用于安裝軟件的相同exe或msi的路徑。它也可以是一個GUID。您可以在注冊表中找到以下鍵值:
|
| ? | 任何需要傳遞給卸載程序的標(biāo)志,使其執(zhí)行無提示卸載。這些通??梢酝ㄟ^添加/?或/h從命令行運(yùn)行卸載程序找到?。在WPKG項(xiàng)目的wiki上可以找到找到這些靜默安裝標(biāo)志的很好的資源: |
如果卸載程序正在等待用戶輸入,salt將不會返回,因此這些是非常重要的。
以下是一些安裝程序和卸載程序設(shè)置的示例:
7zip的:'9.20.00.0' :安裝程序: salt://win/repo/7zip/7z920-x64.msi FULL_NAME : 7-ZIP 9.20(64版) 重啟: 假 install_flags : '/ QN / norestart更新日志文件' MSIEXEC :真卸載:'{23170F69-40C1-2702-0920-000001000000}' uninstall_flags :'/ qn / norestart'或者,uninstaller也可以簡單地重復(fù)msi文件的URL。
7zip的:'9.20.00.0' :安裝程序: salt://win/repo/7zip/7z920-x64.msi FULL_NAME : 7-ZIP 9.20(64版) 重啟: 假 install_flags : '/ QN / norestart更新日志文件' MSIEXEC :真卸載:salt://win/repo/7zip/7z920-x64.msi uninstall_flags :'/ qn / norestart'| 這告訴salt用來安裝軟件包并卸載。這是為.msi安裝??赡艿倪x項(xiàng)有:True,False或路徑到您的系統(tǒng)上的msiexecmsiexec?/imsiexec?/x 7zip的:安裝程序:salt://win/repo/7zip/7z920-x64.msi full_name:7-Zip 9.20(x64 edition)reboot:False install_flags:'/ qn / norestart'msiexec:'C:WindowsSystem32msiexec.exe'uninstaller:salt ://win/repo/7zip/7z920-x64.msi uninstall_flags:'/ qn / norestart' | |
| 這選擇msiexec.exe使用哪個。可能的值:?x86,x64 | |
| ? | 此參數(shù)特定于.msi安裝。它告訴msiexec為所有用戶安裝軟件。默認(rèn)值是True。 |
| ? | 如果安裝程序URL以salt://開頭,則安裝程序所在的整個目錄將被遞歸緩存。這對依賴于同一目錄中的其他文件進(jìn)行安裝的安裝程序非常有用。 |
| ? | 當(dāng)安裝程序URL以salt://開頭時,表示單個文件要復(fù)制下來以便與安裝程序一起使用。復(fù)制到與安裝程序相同的位置。使用此過cache_dir,如果有在該目錄多個文件,你只需要一個特定的文件,并且不希望緩存可能駐留在安裝目錄中的其他文件。 |
以下是具有相關(guān)文件的軟件包的示例:
sqlexpress:'12.0.2000.8':installer: 'salt://win/repo/sqlexpress/setup.exe' full_name: Microsoft SQL Server 2014 Setup (English) reboot: False install_flags: '/ACTION=install /IACCEPTSQLSERVERLICENSETERMS /Q' cache_dir: True| ? | 如果為true,則Windows將使用任務(wù)計(jì)劃程序來運(yùn)行安裝。這對運(yùn)行salt安裝本身很有用,因?yàn)榘惭b過程會殺死任何正在運(yùn)行的salt實(shí)例。 |
| ? | 這告訴salt比較安裝程序的哈希總和 |
到執(zhí)行前提供的哈希總和。該值可以格式化為?hash_algorithm=hash_sum,也可以是包含散列和的文件的URI。有關(guān)支持的算法列表,請參閱hashlib文檔。
這是一個source_hash用法的例子:
messageanalyzer :'4.0.7551.0' :FULL_NAME : '微軟消息分析器' 安裝程序:'salt://win/repo/messageanalyzer/MessageAnalyzer64.msi' install_flags :'/安靜/ norestart更新日志文件' 卸載:“{1CC02C23-8FCD-487E- 860C-311EC0A0C933}” uninstall_flags :'/安靜/ norestart更新日志文件' MSIEXEC :真source_hash :'SHA1 = 62875ff451f13b10a8ff988f2943e76a4735d3d4'| ? | 未實(shí)現(xiàn) |
| ? | 未實(shí)現(xiàn) |
示例可以在https://github.com/saltstack/salt-winrepo-ng找到
在獨(dú)立WINDOWS MINION上管理WINDOWS軟件
Windows Package Repository在獨(dú)立環(huán)境中的功能類似,在配置上有一些差異。
為了替換Salt master使用的winrepo runner,存在一個執(zhí)行模塊來為獨(dú)立的minion提供相同的功能。。這些函數(shù)的名稱與runner中的相同,并以相同的方式使用。唯一的區(qū)別是用來代替:execution?modulesalt-callsalt-run
salt-call winrepo.update_git_repos salt-call winrepo.genrepo salt-call pkg.refresh_db執(zhí)行完上述命令之后,獨(dú)立系統(tǒng)上的存儲庫就可以使用了。
存儲庫SLS文件的自定義位置
如果file_roots在minion配置中沒有被修改,那么不需要在minion配置中添加額外的配置。執(zhí)行模塊的winrepo.genrepo函數(shù)winrepo默認(rèn)會查找由winrepo_cachefile內(nèi)部?指定的文件名C:\salt\srv\salt\win\repo。
如果file_roots參數(shù)已被修改,則?winrepo_dir必須將其修改為適當(dāng)?shù)南鄬β窂絻?nèi)的路徑。例如,如果base在環(huán)境?file_roots分D:\foo,并且?winrepo_source_dir是salt://win/repo,則?winrepo_dir必須設(shè)置為D:\foo\win\repo確保?winrepo.genrepo放求CacheFile到正確的位置。
MINIONS 2015.8.0及更高版本的配置選項(xiàng)
該winrepo_source_dir配置參數(shù)(默認(rèn)?salt://win/repo)控制在pkg.refresh_db查找中求CacheFile(默認(rèn):?winrepo.p)。這意味著winrepo緩存文件的默認(rèn)位置是salt://win/repo/winrepo.p。雙方winrepo_source_dir?并winrepo_cachefile可以調(diào)整,以匹配salt文件服務(wù)器這個文件的實(shí)際位置。
在2015.8.0之前配置MINIONS的配置選項(xiàng)
如果連接到master,minion將默認(rèn)查找winrepo cachefile(由該文件生成的)at?。如果緩存文件在salt文件服務(wù)器上位于不同的路徑上,則?需要更新以反映正確的位置。winrepo.genrepo?runnersalt://win/repo/winrepo.pwin_repo_cachefile
版本2015.8.0中的更改
Windows軟件存儲庫的Git存儲庫管理在版本2015.8.0中已更改,并且已重命名了多個主/從配置參數(shù),以使其命名更加一致。
有關(guān)winrepo配置選項(xiàng)的列表,請參閱此處以了解主配置選項(xiàng),以及此處的無主Windows?副鏡的配置選項(xiàng)。
在master上,winrepo.update_git_repos跑步者已經(jīng)更新,使用?pygit2或者GitPython來簽出包含repo數(shù)據(jù)的git版本庫。如果?安裝了pygit2或GitPython,升級到2015.8.0之后應(yīng)該刪除現(xiàn)有的winrepo git checkout,以允許通過運(yùn)行再次檢出它們winrepo.update_git_repos。
如果既沒有安裝GitPython也沒有安裝pygit2,那么Salt將回退到預(yù)先存在的行為winrepo.update_git_repos,并在主日志中記錄警告。
注意
獨(dú)立的Windows小工具不支持新的GitPython?/?pygit2?功能,而是使用git.latest狀態(tài)來使存儲庫保持最新狀態(tài)。在這里可以找到更多關(guān)于如何在單機(jī)版中使用Windows軟件回收的信息。
配置參數(shù)重命名
許多傳統(tǒng)winrepo配置參數(shù)在版本2015.8.0中已更改,以使命名更加一致。舊的參數(shù)名稱仍然有效,但會記錄一個警告,指出舊名稱已被棄用。
以下是2015.8.0版本中已更改的參數(shù):
主配置
| win_repo | winrepo_dir |
| win_repo_mastercachefile | winrepo_cachefile |
| win_gitrepos | winrepo_remotes |
注意
winrepo_cachefile在2015.8.0及更新的版本中不再使用,并且2015.8.0及更新版本的版本winrepo_dir將取代winrepo_dir_ng該版本。
請參閱此處了解有關(guān)Windows回購的所有主配置選項(xiàng)的詳細(xì)信息。
master配置
| win_repo | winrepo_dir |
| win_repo_cachefile | winrepo_cachefile |
| win_gitrepos | winrepo_remotes |
請參閱此處了解有關(guān)Windows回購的所有小型配置選項(xiàng)的詳細(xì)信息。
PYGIT2?/?GITPYTHON支持維護(hù)GIT REPOS
的winrepo.update_git_repos?轉(zhuǎn)輪(以及對應(yīng)的用于獨(dú)立爪牙)現(xiàn)在利用所使用的相同的底層代碼的GIT中文件服務(wù)器后端和維持和更新git代碼庫的本地克隆。如果安裝了pygit2(0.20.3和更高版本)或GitPython(0.3.0或更高版本)的兼容版本,則Salt將使用它而不是舊方法(調(diào)用該?狀態(tài))。remote?execution?functionGit?External?Pillargit.latest
注意
如果安裝了pygit2和GitPython的兼容版本,那么Salt會偏好pygit2,使用winrepo_provider配置參數(shù)覆蓋此行為?:
winrepo_provider : gitpython將(在上面討論管理Windows軟件上獨(dú)立的Windows爪牙部分)還沒有正式支持新?pygit2?/?GitPython的功能,但如果任pygit2或GitPython安裝到salt的捆綁Python的那么它應(yīng)該工作。但是,這個時候應(yīng)該被認(rèn)為是實(shí)驗(yàn)性的。winrepo?execution?module
為了最大限度地減少潛在的問題,最好的辦法是將主版本升級到2015.8.0或更高版本時,刪除舊版(2015.8.0之前版本)winrepo代碼簽出的winrepo git版本庫,然后運(yùn)行?winrepo.update_git_repos克隆它們主人開始了。
額外的附加功能包括能夠訪問認(rèn)證的git存儲庫(注意:?僅適用于pygit2),并設(shè)置每個遠(yuǎn)程配置設(shè)置。這方面的例子如下:
winrepo_remotes :- https://github.com/saltstack/salt-winrepo.git - git@github.com:myuser / myrepo.git : - pubkey : /path/to/key.pub - privkey : / path / to /密鑰 - 密碼: myaw3s0m3pa $$ phr4 $ 3 - https://github.com/myuser/privaterepo.git : - user : mygithubuser - 密碼: CorrectHorseBatteryStaple注意
每個遠(yuǎn)程配置設(shè)置的工作方式與它們在gitfs中的設(shè)置相同,全局參數(shù)被其遠(yuǎn)程對應(yīng)設(shè)備覆蓋(例如,設(shè)置winrepo_passphrase將為winrepo設(shè)置一個全局口令,適用于所有基于SSH的遠(yuǎn)程,除非由passphrase每個遠(yuǎn)程參數(shù)覆蓋)。
請參閱這里了解更多有關(guān)每個遠(yuǎn)程配置如何在gitfs中工作的更深入的解釋,相同的原則適用于winrepo。
Salt如何使用pygit2?/?GitPython管理git repos還有其他一些變化?。首先,一個clean參數(shù)已經(jīng)被添加到winrepo.update_git_repos?跑步者,該參數(shù)(如果設(shè)置為True)將告訴跑步者在winrepo_dir沒有明確配置的目錄下處理目錄。這樣可以防止在從配置文件中刪除回購站時手動刪除這些目錄。要清理這些舊的目錄clean=True,就像這樣傳遞?:
salt運(yùn)行winrepo.update_git_repos 干凈=真但是,如果正在使用的Git和非混帳的Windows回購定義文件的混合,那么這應(yīng)該不被使用,因?yàn)樗鼤h除包含非git的定義的目錄。
另一個主要變化是現(xiàn)在檢測到回購商之間的沖突,winrepo.update_git_repos如果檢測到任何商品,運(yùn)動員將不會進(jìn)行。考慮以下配置:
winrepo_remotes :- https://foo.com/bar/baz.git - https://mydomain.tld/baz.git - https://github.com/foobar/baz該winrepo.update_git_repos?選手將拒絕此更新回購,因?yàn)檫@些回購的所有三個將被檢出到同一個目錄。要解決此問題,name可以使用調(diào)用的每個遠(yuǎn)程參數(shù)來解決這些沖突:
winrepo_remotes :- https://foo.com/bar/baz.git - https://mydomain.tld/baz.git : - 名稱: baz_junior - https://github.com/foobar/baz : - 名稱: baz_the_third故障排除
不正確的名稱/版本
如果包似乎安裝正確,但salt報(bào)告失敗,那么很可能你有一個版本或full_name不匹配。
檢查full_name軟件包使用的確切版本和版本。使用?pkg.list_pkgs檢查名稱和版本完全匹配安裝的是什么。
更改SLS文件沒有被拿起
確保你已經(jīng)(重新)生成了倉庫緩存文件(對于舊版本的小版本),然后更新了相關(guān)版本的倉庫緩存:
salt運(yùn)行winrepo.genrepo saltwinminion pkg.refresh_db在WINDOWS 2003下的軟件包管理
在Windows Server 2003上,您需要安裝可選的Windows組件“wmi windows安裝程序提供程序”以具有已安裝軟件包的完整列表。如果你沒有這個,salt-minion不能報(bào)告一些安裝的軟件。
如何報(bào)告成功和失敗
Windows包管理器的安裝狀態(tài)/模塊功能大致如下所示:
如果在使用軟件包管理器時遇到任何問題,可能是由于您的sls文件中的數(shù)據(jù)與前后pkg.list_pkgs結(jié)果之間的差異不匹配?。
?
?
?
?
?
?
?
?
?
?
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/xiaofeng0510/p/8351143.html
總結(jié)
以上是生活随笔為你收集整理的windows下使用salt安装软件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 向钱贷14天的上征信吗
- 下一篇: Python心得基础篇【2】函数