在状态文件

时间:2016-07-31 14:16:07

标签: salt-stack

我正在玩盐,我走到了死胡同。

我的状态文件应该在编辑/更改文件之前备份文件。 我不喜欢内置备份功能,因为(据我所知),当我运行备份时,它将文件复制到/ var / cache / salt / minion / ....如果我这样做的话再次运行备份将覆盖最后一个版本 所以,我在bash中创建了一个备份脚本 该脚本处理两个参数[要备份的文件] [注释]

我的计划是在每个更改我的minion文件的状态之前运行脚本。

那是我的sls文件:

 bck:
   #Copy the backup script to minion 
   file.managed:
      - name: /bin/bck
      - source: salt://bin/bck
      - template: jinja
      - user: root
      - group: root
      - mode: 0773

 myscript:
  cmd.run:
    - name: /bin/bck 
    #- name: /bin/bck /etc/sysctl.conf GILI > /dev/null 2>&1
    - cwd: /
#    - stateful: True

 vm.swappiness:
    sysctl.present:
#      - cmd:  myscript {{ GILI }}
       - cmd:  myscript /etc/sysctl.conf GILI
#       - args: "/etc/sysctl.conf GILI > /dev/null 2>&1"
#      - GILI: /etc/hosts GGGGGGG
      - value: 20

评论没有用,而且该示例也没有用(我无法看到我的bck脚本正在运行。

如果我从&#34中删除评论; # - 有状态:真实"脚本运行正常,但它独立运行,而不是从" vm.swappiness"

请帮助:)

吉利

1 个答案:

答案 0 :(得分:1)

您想要使用"要求"将这些链接在一起。另外,我可能会使用my_backup_script: cmd.script: - source: salt://bin/bck vm.swappiness: sysctl.present: - value: 20 - require: - cmd: my_backup_script 作为备份脚本。它看起来像这样:

Friend Shared ReadOnly Property twolettercountrycode As Generic.Dictionary
    Get
        Static _twolettercountryCodeDict As Generic.Dictionary = Nothing
        If _twolettercountryCodeDict Is Nothing Then
            _twolettercountryCodeDict = New Generic.Dictionary(Of String, String) From {{"ty", "turkey"}, {"py", "pakinmay"}, {"ra", "romania"}, {"vm", "vietnam"}, {"bl", "brazil"}, {"et", "egypt"}, {"ka", "korea"}}
            Dim listOfCountries = fileToCol(COUNTRYCODESFileName)

            For Each var In listOfCountries
                Dim ar = var.Split({"*"}, System.StringSplitOptions.None).ToList()
                _twolettercountryCodeDict.Add(LCase(ar(1)), UCase(ar(0)))
            Next
        End If
        return _twolettercountryCodeDict
    End Get
End Property