1. 程式人生 > >saltstack模塊之pkg相關模塊

saltstack模塊之pkg相關模塊

saltstack 模塊 pkg 軟件 pkgs pkg.install

1、pkg.available_version模塊

pkg.available_version: 返回所查詢軟件包可供安裝或更新的最新版本。如果指定多個軟件包,則以字典的形式輸出返回結果。

[[email protected] ~]# salt ‘*‘ pkg.available_version httpd
salt-minion02.contoso.com:
    2.2.15-59.el6.centos
salt-minion01.contoso.com:
    2.2.15-59.el6.centos
[[email protected] ~]# salt ‘*‘ pkg.available_version httpd nginx pcre
salt-minion02.contoso.com:
    ----------
    httpd:
        2.2.15-59.el6.centos
    nginx:
        1.10.2-1.el6
    pcre:
        7.8-7.el6
salt-minion01.contoso.com:
    ----------
    httpd:
        2.2.15-59.el6.centos
    nginx:
        1.10.2-1.el6
    pcre:
        7.8-7.el6
[[email protected]
/* */ ~]# salt ‘*‘ pkg.available_version nginx fromrepo=epel salt-minion02.contoso.com: 1.10.2-1.el6 salt-minion01.contoso.com: 1.10.2-1.el6


2、pkg.version模塊

pkg.version:返回minion端軟件包的版本號,如果沒有安裝該軟件包,則返回空。如果同時查詢多個軟件包,則將軟件包的名字和版本號以字典的方式返回。

[[email protected] ~]# salt ‘*‘ pkg.version lrzsz
salt-minion01.contoso.com:
    0.12.20-27.1.el6
salt-minion02.contoso.com:
    0.12.20-27.1.el6
[[email protected]
/* */ ~]# salt ‘*‘ pkg.version lrzsz gcc salt-minion01.contoso.com: ---------- gcc: 4.4.7-17.el6 lrzsz: 0.12.20-27.1.el6 salt-minion02.contoso.com: ---------- gcc: 4.4.7-17.el6 lrzsz: 0.12.20-27.1.el6

3、pkg.list_pkgs模塊

pkg.list_pkgs:列出已安裝的軟件包,返回結果為包含包名和版本號的字典。

[[email protected] ~]# salt ‘salt-minion01.contoso.com‘ pkg.list_pkgs
salt-minion01.contoso.com:
    ----------
    ConsoleKit:
        0.4.1-3.el6
    ConsoleKit-libs:
        0.4.1-3.el6
    ConsoleKit-x11:
        0.4.1-3.el6
    GConf2:
        2.28.0-6.el6
    MAKEDEV:
        3.24-6.el6
    ORBit2:
        2.14.17-3.2.el6_3
    PyYAML:
        3.10-3.1.el6
.....

4、pkg.install模塊

pkg.install: 安裝相對應的軟件包,加上refresh=True可以在安裝前清理yum數據庫。

name: 軟件包的名稱,例如:salt ‘*‘ pkg.install httpd

refresh: 在執行安裝操作前是否進行更新yum數據庫,例如:salt ‘*‘ pkg.install httpd refresh=True

reinstall: 通過指定reinstall的值True/False來決定是否重新安裝指定的軟件包,相當於yum reinstall操作。如果指定了軟件包的版本,那麽只有在指定版本號和已安裝的版本號相同的情況下才能使用yum reinstall。可以連同sources一同使用,前提是軟件包來源的頭部要和已經安裝的軟件包名稱和版本號匹配。

skip_verify:跳過GPG檢查,同yum install的--nogpgcheck選項。

version:指定安裝包的版本,如果同時傳了“pkgs”和“sources”選項,那麽version參數無效。

Repository相關選項:

 fromrepo:指定從哪個(些)repo倉庫進行安裝。

enablerepo:啟用已被禁用的repo倉庫。

       disablerepo:禁用已被啟用的repo倉庫。

disableexcludes:禁用從main中引用,可能是repo或其他的引用,相當於yum --disableexcludes=‘main‘。

批量安裝軟件包選項:

pkgs:指定要從repo倉庫中安裝軟件的列表,需要傳一個Python列表。可以通過使用包含軟件包和版本的單一字典指定軟件包的版本號。

例如:salt ‘*‘ pkg.install pkgs=‘["lrzsz", "tree"]‘

salt ‘*‘ pkg.install pkgs=‘["gcc", {"lrzsz": "0.12.20-27.1.el6"}]‘

sources:要安裝的RPM包的列表。必須要傳一個字典列表,包含RPM包名稱的鍵,並且RPM包的源URL或者本地路徑作為鍵值。

例如:salt ‘*‘ pkg.install sources=‘[{"foo": "salt://foo.rpm"}, {"bar": "salt://bar.rpm"}]‘

相關示例如下:

[[email protected] ~]# salt ‘salt-minion01.contoso.com‘ pkg.install tcpdump
salt-minion01.contoso.com:
    ----------
    tcpdump:
        ----------
        new:
            14:4.0.0-11.20090921gitdf3cb4.2.el6
        old:
            14:4.0.0-3.20090921gitdf3cb4.2.el6
[[email protected] ~]# salt ‘salt-minion02.contoso.com‘ pkg.install tcpdump refresh=True
salt-minion02.contoso.com:
    ----------
    tcpdump:
        ----------
        new:
            14:4.0.0-11.20090921gitdf3cb4.2.el6
        old:
            14:4.0.0-3.20090921gitdf3cb4.2.el6
[[email protected] ~]# salt ‘salt-minion02.contoso.com‘ pkg.install tcpdump reinstall=True
salt-minion02.contoso.com:
    ----------
    tcpdump:
        ----------
        new:
            14:4.0.0-11.20090921gitdf3cb4.2.el6
        old:
            14:4.0.0-11.20090921gitdf3cb4.2.el6
[[email protected] ~]# salt ‘salt-minion02.contoso.com‘ pkg.install pcre fromepel=epel   #使用fromrepo反而無法安裝,使用fromepel=選項反而可以安裝(使用的salt版本是salt-master-2015.5.10-2.el6.noarch)
salt-minion02.contoso.com:
    ----------
    pcre:
        ----------
        new:
            7.8-7.el6
        old:
            7.8-6.el6
[[email protected] ~]# salt ‘salt-minion01.contoso.com‘ pkg.install nfs-utils fromepel=CentOS-Base
salt-minion01.contoso.com:
    ----------
    libtirpc:
        ----------
        new:
            0.2.1-13.el6_9
        old:
            0.2.1-6.el6_4
    nfs-utils:
        ----------
        new:
            1:1.2.3-75.el6
        old:
            1:1.2.3-39.el6
    python-argparse:
        ----------
        new:
            1.2.1-2.1.el6
        old:
[[email protected] ~]# salt ‘salt-minion02.contoso.com‘ pkg.install pkgs=‘["lrzsz","tree"]‘ re
install=True
salt-minion02.contoso.com:
    ----------
    lrzsz:
        ----------
        new:
            0.12.20-27.1.el6
        old:
            0.12.20-27.1.el6
    tree:
        ----------
        new:
            1.5.3-3.el6
        old:
            1.5.3-3.el6
[[email protected] ~]# salt ‘salt-minion02.contoso.com‘ pkg.install sources=‘[{"zabbix-release": "http://repo.zabbix.com/zabbix/3.0/rhel/6/x86_64/zabbix-release-3.0-1.el6.noarch.rpm"}]‘
salt-minion02.contoso.com:
    ----------
    zabbix-release:
        ----------
        new:
            3.0-1.el6
        old:

5、pkg.upgrade模塊

pkg.upgrade:更新系統已安裝的軟件包,返回一個包含報名以及升級前後新舊版本號的詞典。用法:salt ‘*‘ pkg.upgrade (因為升級系統比較耗時,這裏不再添加演示示例)

Repository選項:

fromrepo:指定從哪個(些)repo倉庫進行安裝。

enablerepo:啟用已被禁用的repo倉庫。

disablerepo:禁用已被啟用的repo倉庫。

disableexcludes:禁用從main中引用,可能是repo或其他的引用,相當於yum --disableexcludes=‘main‘。

6、pkg.remove模塊

pkg.remove:移除軟件包

name:指定要移除的軟件包。

批量移除選項:

pkgs:指定要批量移除的軟件包列表。必須傳入一個Python列表,如果該選項被啟用,則name選項被忽略。

[[email protected] ~]# salt ‘salt-minion02.contoso.com‘ pkg.remove lrzsz
salt-minion02.contoso.com:
    ----------
    lrzsz:
        ----------
        new:
        old:
            0.12.20-27.1.el6
[[email protected] ~]# salt ‘salt-minion02.contoso.com‘ pkg.remove tcpdump,lrzsz
salt-minion02.contoso.com:
    ----------
    lrzsz:
        ----------
        new:
        old:
            0.12.20-27.1.el6
    tcpdump:
        ----------
        new:
        old:
            14:4.0.0-11.20090921gitdf3cb4.2.el6
[[email protected] ~]# salt ‘salt-minion02.contoso.com‘ pkg.remove pkgs=‘["tcpdump","lrzsz","tree"]‘
salt-minion02.contoso.com:
    ----------
    lrzsz:
        ----------
        new:
        old:
            0.12.20-27.1.el6
    tcpdump:
        ----------
        new:
        old:
            14:4.0.0-11.20090921gitdf3cb4.2.el6
    tree:
        ----------
        new:
        old:
            1.5.3-3.el6


本文出自 “IT小二郎” 博客,請務必保留此出處http://jerry12356.blog.51cto.com/4308715/1932011

saltstack模塊之pkg相關模塊