Рейтинг:0

Как предварительно заполнить архивы Salt Minion

флаг tr

Итак, я создаю файл состояния для установки MatterMost на миньоне. Пока это выглядит так:


самая важная группа пользователей:
  пользователь.присутствует:
    - имя: самое главное
    - оболочка: /bin/sh
    - создать дом: Ложь
    - группа пользователей: Истина
    - система: Истина
    - требовать:
      # Из формулы postgresql:
      # https://github.com/saltstack-formulas/postgres-formula/blob/master/postgres/server/init.sls#L278
      - сервис: postgresql-работает

самый важный выбор:
  архив.распакованный:
    - имя: /опт
    - источник: https://releases.mattermost.com/{{столб ['mattermost'].версия }}/mattermost-{{столб['самый материальный'].версия }}-linux-amd64.tar.gz
    - source_hash: a194fd3d2bebed8e6b5721261621030e573f4500c54fb251cfd8ff6f32fe714e
    - пользователь: самый важный
    - группа: самое главное
    - требовать:
      - пользователь: самая важная группа пользователей

Моя проблема: перед созданием этого SLS был установлен MatterMost (точно такая же версия, как указанная в столбце), загрузив архив в дом администратора, а затем распаковав архив вручную в выбрать. Если я побегу штат .highstate при этом я боюсь, что он повторно загрузит tar-архив, а затем, поскольку tar-архив «новый» (из точки зрения миньона), он будет извлечен поверх существующей установки в /опт

Как мне «предварительно заполнить» «архивный кеш» миньона, чтобы миньон мог видеть, что файл уже загружен, и не будет (повторно) загружать + перезаписывать?

Рейтинг:0
флаг cn

Я только что протестировал (немного модифицированный sls, нет опоры, поэтому жестко закодированную версию для тестирования можно выбросить в контейнере nspawn). Сначала я загрузил tar-архив, используя пункт назначения /opt, а затем скопировал загруженный каталог в /mnt.

самый важный выбор:
  архив.распакованный:
    - имя: /мнт
    - источник: https://releases.mattermost.com/desktop/5.0.4/mattermost-desktop-5.0.4-linux-x64.tar.gz
    - source_hash: sha256=cbd2981ce282eecfea1167c500d900cdd31bd041b0861025743b7d58e4cb9229
    - пользователь: самый важный
    - группа: самое главное
    - требовать:
      - самая важная группа пользователей

Он работает правильно. Никаких дополнительных загрузок. На самом деле, состояние архива достаточно тонкое, чтобы не загружать повторно архив, если он кэшируется в /var/cache/salt/minion/extrn_files/{{saltenv}}, он проверит хеш и распакует содержимое в каталоге назначения в случае файл отсутствует.

Так что тут ничего не делает, все на месте:

    # вызов соли state.apply 
    местный:
    ----------
              ID: самая важная группа пользователей
        Функция: user.present
            Название: самое главное
          Результат: Верно
         Комментарий: самое важное для пользователя присутствует и обновлено
         Начато: 21:09:26.078971
        Продолжительность: 12,33 мс
         Изменения:   
    ----------
              ID: самый важный вариант
        Функция: архив.извлечено
            Имя: /мнт
          Результат: Верно
         Комментарий: Все файлы в архиве уже присутствуют
         Начато: 21:09:26.091829
        Продолжительность: 1030,216 мс
         Изменения:   
    
    Резюме для местных
    ------------
    Успешно: 2
    Не удалось: 0
    ------------
    Всего запущено состояний: 2
    Общее время работы: 1,043 с

Давайте удалим один файл из нераспакованного архива и повторим попытку:

# rm /mnt/mattermost-desktop-5.0.4-linux-x64/vk_swiftshader_icd.json 

  местный:
----------
          ID: самая важная группа пользователей
    Функция: user.present
        Название: самое главное
      Результат: Верно
     Комментарий: самое важное для пользователя присутствует и обновлено
     Начато: 21:09:45.753688
    Продолжительность: 11,511 мс
     Изменения:   
----------
          ID: самый важный вариант
    Функция: архив.извлечено
        Имя: /мнт
      Результат: Верно
     Комментарий: https://releases.mattermost.com/desktop/5.0.4/mattermost-desktop-5.0.4-linux-x64.tar.gz извлечен в /mnt/ из-за отсутствия одного или нескольких файлов/каталогов. Вывод был обрезан до False количества строк
     Начато: 21:09:45.765712
    Продолжительность: 2165,587 мс
     Изменения:   
              ----------
              извлеченные_файлы:
              {{ обрезанный вывод }}
                  - самый важный рабочий стол-5.0.4-linux-x64/vk_swiftshader_icd.json
              обновленная собственность:
                  Истинный

Резюме для местных
------------
Успешно: 2 (изменено=1)
Не удалось: 0
------------
Всего запущено состояний: 2
Общее время работы: 2,177 с

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.