# python模块安装
include:
- system/python
csjs-pip-install:
pip3.installed:
- pkgs:
- pymysql==1.0.2
- peewee==3.14.4
- portalocker==2.3.0
- lxml==4.6.3
- ruamel.yaml==0.17.4
- aliyun-python-sdk-core-v3==2.13.11
- require:
- python-pip
- target: /usr/lib64/python{{ grains["pythonversion"][0] }}.{{ grains["pythonversion"][1] }}/site-packages
这段SLS文件的意思是安装Python模块的依赖关系。让我逐行解释一下:
1. `include: - system/python`:这一行指示SaltStack引入了`system/python`模块。这个模块通常用于配置和管理Python环境。
2. `csjs-pip-install:`:这是一个自定义的ID,用于表示安装Python模块的任务。
3. `pip3.installed:`:这是一个SaltStack模块,用于安装指定的Python模块。
4. `- pkgs:`:在这个列表中,指定了要安装的Python模块的名称和版本号。例如,`pymysql==1.0.2`表示安装`pymysql`模块的1.0.2版本。
5. `- require: - python-pip`:这表示在安装Python模块之前,需要先安装`python-pip`软件包,以确保`pip3`可用。
6. `- target: /usr/lib64/python{{ grains["pythonversion"][0] }}.{{ grains["pythonversion"][1] }}/site-packages`:这是指定Python模块安装路径的目标目录。`{{ grains["pythonversion"][0] }}.{{ grains["pythonversion"][1] }}`是一个Jinja模板语法,用于动态获取Salt Minion上的Python版本,并将其插入目标路径中。
因此,这段SLS文件的目的是使用`pip3.installed`模块安装指定的Python模块,确保先安装`python-pip`软件包,并将模块安装到目标路径中。
请确保你的Salt Minion上已经配置好了`system/python`模块,并正确执行该SLS文件,以安装所需的Python模块