如何为 python 定义盐状态下的 win 包名称?
How to define name of win package in salt state for python?
我正在尝试为 Windows 创建 salt state,以安装 python3。这是我的 sls 文件:
{% set version = "3.8.3150.0" %}
{% set SOURCE_PATH = 'http://local-nas/' %}
{% if grains['cpuarch'] == 'AMD64' %}
{% set PROGRAM_FILES = "%ProgramFiles(x86)%" %}
{% else %}
{% set PROGRAM_FILES = "%ProgramFiles%" %}
{% endif %}
python3:
'{{ version }}':
full_name: 'Python 3.8.3 (64-bit)'
installer: '{{ SOURCE_PATH }}/python-3.8.3-amd64.exe'
install_flags: '/quiet InstallAllUsers=1'
uninstaller: '{{ PROGRAM_FILES }}\Python 3.8\uninstall.exe'
uninstall_flags: '/quiet InstallAllUsers=1'
msiexec: False
问题是,当我 运行 state.apply 使用 salt 时,我的状态为失败,但 python 安装。
我知道,那个版本和 full_name 应该与 Add/Remove 程序中的名称和版本完全匹配。还有“Python 3.8.3(64 位)”和“Python Launcher”。这有点奇怪。但是当我用 pkg.list_pkgs 检查我的节点时,我发现有几个来自 Python 的打包器,它们都有不同的名称:
Python 3.8.3 Core Interpreter (64-bit):
3.8.3150.0
Python 3.8.3 Development Libraries (64-bit):
3.8.3150.0
Python 3.8.3 Documentation (64-bit):
3.8.3150.0
Python 3.8.3 Executables (64-bit):
3.8.3150.0
Python 3.8.3 Standard Library (64-bit):
3.8.3150.0
Python 3.8.3 Tcl/Tk Support (64-bit):
3.8.3150.0
Python 3.8.3 Test Suite (64-bit):
3.8.3150.0
Python 3.8.3 Utility Scripts (64-bit):
3.8.3150.0
Python 3.8.3 pip Bootstrap (64-bit):
3.8.3150.0
Python Launcher:
3.8.7072.0
问题是 - 我应该在盐状态“full_name”字段中设置什么名称以避免失败状态?
P.S。我尝试设置“Python 3.8.3 核心解释器(64 位)”- 没有帮助。
全名应该是 pkg.list_pkgs 中显示的全名,即 add/remove 包中显示的全名。还要确保记得在单词后同步数据库,否则 minion 不会接收更改。在这种情况下,全名应该是 Python 3.8.3 Core Interpreter (64-bit)
我正在尝试为 Windows 创建 salt state,以安装 python3。这是我的 sls 文件:
{% set version = "3.8.3150.0" %}
{% set SOURCE_PATH = 'http://local-nas/' %}
{% if grains['cpuarch'] == 'AMD64' %}
{% set PROGRAM_FILES = "%ProgramFiles(x86)%" %}
{% else %}
{% set PROGRAM_FILES = "%ProgramFiles%" %}
{% endif %}
python3:
'{{ version }}':
full_name: 'Python 3.8.3 (64-bit)'
installer: '{{ SOURCE_PATH }}/python-3.8.3-amd64.exe'
install_flags: '/quiet InstallAllUsers=1'
uninstaller: '{{ PROGRAM_FILES }}\Python 3.8\uninstall.exe'
uninstall_flags: '/quiet InstallAllUsers=1'
msiexec: False
问题是,当我 运行 state.apply 使用 salt 时,我的状态为失败,但 python 安装。 我知道,那个版本和 full_name 应该与 Add/Remove 程序中的名称和版本完全匹配。还有“Python 3.8.3(64 位)”和“Python Launcher”。这有点奇怪。但是当我用 pkg.list_pkgs 检查我的节点时,我发现有几个来自 Python 的打包器,它们都有不同的名称:
Python 3.8.3 Core Interpreter (64-bit):
3.8.3150.0
Python 3.8.3 Development Libraries (64-bit):
3.8.3150.0
Python 3.8.3 Documentation (64-bit):
3.8.3150.0
Python 3.8.3 Executables (64-bit):
3.8.3150.0
Python 3.8.3 Standard Library (64-bit):
3.8.3150.0
Python 3.8.3 Tcl/Tk Support (64-bit):
3.8.3150.0
Python 3.8.3 Test Suite (64-bit):
3.8.3150.0
Python 3.8.3 Utility Scripts (64-bit):
3.8.3150.0
Python 3.8.3 pip Bootstrap (64-bit):
3.8.3150.0
Python Launcher:
3.8.7072.0
问题是 - 我应该在盐状态“full_name”字段中设置什么名称以避免失败状态?
P.S。我尝试设置“Python 3.8.3 核心解释器(64 位)”- 没有帮助。
全名应该是 pkg.list_pkgs 中显示的全名,即 add/remove 包中显示的全名。还要确保记得在单词后同步数据库,否则 minion 不会接收更改。在这种情况下,全名应该是 Python 3.8.3 Core Interpreter (64-bit)