我有許多用於在Debian和CentOS虛擬機上執行某些操作的可靠劇本。到現在爲止,當我需要處理包時,我會使用可用的模塊apt和yum。因此,我必須檢查安裝了哪個操作系統,然後使用正確的安全模塊。使用ansible的包模塊升級所有包是否安全?
但是,我最近了解到有一個名爲package的模塊,它以某種方式統一了軟件包管理器,從而降低了劇本的複雜性,所以我現在只嘗試使用此模塊。
我想要執行的操作之一是更新所有軟件包。問題是ansible's documentation沒有說如何使用包來做到這一點。它說,然而,如何與容易和百勝做到這一點:第一個使用和升級操作,後者暗示寫的東西,如:
yum: name=* state=latest
出於這個原因,我想我可以使用包做到以下幾點:
package: name=* state=latest
當我跑這個劇本我沒碰到過任何錯誤來,但這不是任何地方記錄和容易和yum不能以完全相同的方式工作。所以我的問題是:這個命令是否在安全的位置,因爲它實際上是做我想做的事情?
在此先感謝!
編輯:
我發現,使用package: name=* state=latest
將嘗試安裝或更新所有可用的軟件包,而不是隻更新安裝的。因此,這對我來說不是一個有效的解決方案。或者,我可以繼續使用yum和適用進行此特定操作,但我不知道爲什麼無法使用程序包或者如果我丟失了某些東西。
我認爲與apt相關的評論並不一定意味着僅使用通配符將升級所有軟件包,特別是因爲該模塊有特定的升級標誌。所以我想知道是否使用通配符會安裝或升級* all *包而不是隻升級已安裝的包。 –
我相信apt通配符適用於所有軟件包的原因是在文檔中提到的[fnmatch](https://docs.python.org/2/library/fnmatch.html),並且支持這種通配符可以在其文檔中看到。 – zochamx
我剛剛測試過它,它不能按我想要的方式工作。如果我在Debian機器上使用'package:name = * state = latest',它會嘗試安裝存儲庫中可用的* all *包。我想要的是更新那些已經安裝的軟件包。我認爲最好的做法是在這一步使用** apt **和** yum **模塊。 –