Сборка пакета с помощью Saltstack - PullRequest
0 голосов
/ 16 ноября 2018

Я пытаюсь получить определенный пакет, извлеченный из Github и установленный с Salt (в конфигурации без мастера) при подготовке машины.До сих пор мне удавалось сделать это так:

{% set pkg = {
'Ubuntu': 'https://github.com/some-package/releases/download/v1/some-package-v1-unknown-linux-gnu.deb',
}.get(grains.os) %}

curl -O -L {{ pkg }}:
    cmd.run

dpkg -i some-pakage-v1-unknown-linux-gnu.deb:
    cmd.run

Теперь у Солта есть модуль, который, кажется, делает именно это, он называется pkgbuild.built .Я пытался использовать его, но без особого успеха.Это то, что я сейчас прав:

some-pakage-v1:
    pkgbuild.built:
        - runas: root
        - results:
        - some-package-v1-unknown-linux-gnu.deb
        - dest_dir: /tmp/pkg
        - spec: salt://pkg/salt/spec/some-package.spec
        - tgt: ubuntu-18.04.1-x86_64
        - sources:
            - {{ pkg }}

И я получаю эту ошибку:

      ID: some-pakage-v1
Function: pkgbuild.built
  Result: False
 Comment: An exception occurred in this state: Traceback (most recent call last):
            File "/usr/lib/python2.7/dist-packages/salt/state.py", line 1913, in call
              **cdata['kwargs'])
            File "/usr/lib/python2.7/dist-packages/salt/loader.py", line 1898, in wrapper
              return f(*args, **kwargs)
            File "/usr/lib/python2.7/dist-packages/salt/states/pkgbuild.py", line 207, in built
              ret['changes'] = __salt__[func](
            File "/usr/lib/python2.7/dist-packages/salt/loader.py", line 1155, in __getitem__
              func = super(LazyLoader, self).__getitem__(item)
            File "/usr/lib/python2.7/dist-packages/salt/utils/lazy.py", line 104, in __getitem__
              raise KeyError(key)
          KeyError: 'pkgbuild.build'
 Started: 18:29:57.051892
Duration: 9.644 ms
 Changes:  

1 Ответ

0 голосов
/ 18 ноября 2018

Может быть, вы допустили ошибку в отступе?

Согласно документации, я бы ожидал этого:

some-pakage-v1:
    pkgbuild.built:
        - runas: root
        - results:
            - some-package-v1-unknown-linux-gnu.deb
        - dest_dir: /tmp/pkg
        - spec: salt://pkg/salt/spec/some-package.spec
        - tgt: ubuntu-18.04.1-x86_64
        - sources:
            - {{ pkg }}

Строка после результатов должна иметь отступ

Тем не менее, в вашем случае, если вы хотите установить файл .deb, почему бы не установить правила pkg.installed?

some-package-v1:
  pkg.installed:
    - sources: 
        - some-package-v1: https://github.com/some-package/releases/download/v1/some-package-v1-unknown-linux-gnu.deb
...