Я только что протестировал (немного модифицированный 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 с