windows下使用salt安裝軟體

來源:互聯網
上載者:User

標籤:建立   states   設定   minion   fun   was   installer   注意   config   

https://docs.saltstack.com/en/latest/topics/windows/windows-package-manager.html

可以看官網文檔,本人英文差,翻譯不好,諒解

在2015.8.0及更高版本中,Windows Software Repository緩衝是在Salt Minion上編譯的

SaltStack Windows軟體資產庫提供了一個軟體包管理器和軟體資產庫,類似於Linux上的yum和apt提供的資產庫。該存放庫可以使用遠程Windows系統上的安裝程式來安裝軟體。

 

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的區別

1,存放庫中繼資料(SLS檔案)通過salt或git託管。

2,軟體包可以從salt倉庫,git倉庫或http(s)或ftp URL下載。

3,包之間的依賴關係需要手動管理。

使用之前的要求是:GitPython 0.3或更高版本,或者在Salt mast上安裝libgit 0.20.0或更高版本的pygit2 0.20.3。Windows軟體包定義是使用Git下載和更新的。

預設情況下salt不會進行分發用於安裝Windows軟體包的SLS檔案,需要運行以下命令以初始化您的Salt主機上的存放庫:

salt-run winrepo.update_git_repos
SYNC 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 firefoxsalt winminion pkg.purge firefox

Note

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維護SLS檔案的存放庫來安裝大量的Windows軟體包:

  • 2015.8.0及以後的版本:https://github.com/saltstack/salt-winrepo-ng
  • 早期版本:https://github.com/saltstack/salt-winrepo

預設情況下,這些存放庫被鏡像到/srv/salt/win/repo-ng 和/srv/salt/win/repo

通過設定winrepo_dir_ngwinrepo_dir選項,可以在主設定檔中更改此位置 。

MAINTAINING WINDOWS REPO DEFINITIONS IN GIT REPOSITORIES

可以託管在一個或多個Git存放庫中,預設存放庫由SaltStack託管在GitHub上。這些包括各種開源軟體項目的軟體定義程式檔案。這些軟體定義程式檔案是.sls檔案。有兩個預設的存放庫:salt-winreposalt-winrepo-ngsalt-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.

通過修改或擴充winrepo_remotes和 winrepo_remotes_ng選項,配置主伺服器可以搜尋包定義的那些git存放庫。

Important

winrepo_remotes was called win_gitrepos in Salt versions earlier than 2015.8.0

軟體包定義通過運行winrepo.update_git_reposrunner 從online存放庫中取出 。該命令在主伺服器上運行:

  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.

重要

如果您有自訂的軟體定義程式檔案,而這些軟體定義程式檔案不是在版本庫中維護的,那麼應該將這些檔案儲存體在win/repo較舊的版本和 win/repo-ng較新版本的版本中。這樣做的原因是,內容win/repo/salt-winrepowin/repo-ng/salt-winrepo-ng在每次運行時清除winrepo.update_git_repos

此外,當您運行winrepo.genrepopkg.refresh_db下的全部內容win/repowin/repo-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.

最後,您需要通過運行該pkg.refresh_db命令來重新整理minion資料庫 。這也在master上運行:

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伺服器上修改軟體定義程式檔案時,無論是通過運行,修改現有檔案,還是通過建立自己的檔案,都需要重新整理minion上的資料庫, 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 問題。這將導致操作停止。您需要修複文法,才能成功建立msgpack檔案。

要禁用其中一個repo,請將其設定[]為主配置中的空白列表。例如,要禁用winrepo_remotes在主設定檔中設定以下內容:winrepo_remotes:[]

建立一個包定義SLS檔案

套件定義檔是一個yaml檔案,其中包含使用salt安裝一個軟體所需的所有資訊。它定義了有關軟體包的資訊,包括版本,全名,安裝程式和卸載程式所需的標誌,是否使用Windows工作排程器安裝軟體包,以及如何尋找安裝軟體包等。

看看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。下一行縮排兩個空格,並包含要定義的版本。如上例所示,軟體定義程式檔案可以為同一個軟體定義程式多個版本。該版本後面的行縮排了兩個空格,並包含安裝該軟體包所需的全部資訊。

警告

軟體包名稱和full_name軟體存放庫中的所有其他軟體包必須是唯一的。

版本行是要安裝的軟體包的版本。當您需要安裝某個軟體的特定版本時使用它。

警告

版本必須用引號括起來,否則yaml解析器會刪除尾隨的零。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

windows下使用salt安裝軟體

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.