使用salt state执行一个复制文件并执行的任务
1. 在master配置文件配置的salt root目录下,编辑top.sls文件
base: '*': - pip
2. 上面的top.sls引用了pip.sls,编辑pip.sls
pip: file.managed: - source: salt://get-pip.py - name: /home/salt/get-pip.py - user: salt - group: salt - mode: 644
这里的pip定义,使用了file.managed函数,
source指定要复制的文件在master上的路径,此处salt://是相对于salt root目录的
name 指定复制到minion上的路径
user 指定文件的所有用户 group指定文件的所属用户
mode指定文件的权限用数字表示 4代表读权限 2代表写权限 1代表执行权限
3. 然后就可以通过命令 salt ‘*’ state.highstate 执行文件复制任务了
4. 可以在pip文件中添加cmd.run要求saltstack在执行完文件复制任务后,执行python命令,如下是更新后的pip.sls文件
pip: file.managed: - source: salt://get-pip.py - name: /home/salt/get-pip.py - user: salt - group: salt - mode: 644 cmd.run: - name: python /home/salt/get-pip.py - require: - file: /home/salt/get-pip.py
原文链接:http://outofmemory.cn/saltstack/salt-state-copy-file-and-execute