无论正确与否,我都假设为了实现*.sls
文件中定义的声明性配置,盐主必须在每个奴才上执行一系列命令式命令。例如,对于
install_docker_1703:
pkgrepo.managed:
- humanname: Docker CE Repository
- name: deb [arch=amd64] https://download.docker.com/linux/ubuntu xenial stable
- key_url: https://download.docker.com/linux/ubuntu/gpg
- require_in:
- pkg: docker-ce
pkg.installed:
- name: docker-ce
- hold: True
- refresh: True
- cache_valid_time: 30 # very low value for testing purposes
- version: '17.03.2*'
这些命令的顺序被执行
add-apt-repository <docker-repo>
apt-get update
apt-get install docker-ce=17.03.2-xxxxxxx
加上一些检查以验证当前状态并将其与所需状态进行比较。
我在调试盐的行为时遇到麻烦。在以上示例的上下文中,我在验证是否每次运行salt master(salt '*' state.apply
)时是否更新apt缓存,或者是否不每30秒更新一次,或者根本不更新。
如何将执行的命令的确切顺序以及它们各自的输出输出到stdout
(或在某些日志文件中找到)?
答案 0 :(得分:1)
您可以在/var/log/salt/minion
文件中找到有关奴才的详细命令,
您很可能需要将日志记录级别调整为DEBUG
,log_level_logfile: debug
就足够了。否则,您只会发现错误/警告。
调试行为:最好检查出盐源并自行查找。 鉴于盐矿的工作条件不同,执行分支太多了。
每个状态(状态模块)由多个模块调用(执行模块)组成。在执行模块中,您将找到命令。这是确定给定状态的确切命令的最简单方法