salt 在后台执行什么命令以达到所需的 minion 状态?
What commands does salt execute under the hood to achieve desired minion states?
正确或错误,我假设为了实现 *.sls
文件中定义的声明性配置,salt master 必须对每个 minion 执行一系列命令式命令。例如,对于
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
(或在某些日志文件中查找)?
您可以在 /var/log/salt/minion
文件中找到关于 minion 的详细命令,
您很可能需要将日志记录级别调整为 DEBUG
,log_level_logfile: debug
应该就足够了。否则你只会找到 errors/warns。
调试行为:最好检查盐源并自行查找。
鉴于 salt minion 工作的不同条件,执行分支实在是太多了。
每个状态(状态模块)由多个模块调用(执行模块)组成。在执行模块中,您将找到命令。这是确定给定状态的确切命令的最简单方法
正确或错误,我假设为了实现 *.sls
文件中定义的声明性配置,salt master 必须对每个 minion 执行一系列命令式命令。例如,对于
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
(或在某些日志文件中查找)?
您可以在 /var/log/salt/minion
文件中找到关于 minion 的详细命令,
您很可能需要将日志记录级别调整为 DEBUG
,log_level_logfile: debug
应该就足够了。否则你只会找到 errors/warns。
调试行为:最好检查盐源并自行查找。 鉴于 salt minion 工作的不同条件,执行分支实在是太多了。
每个状态(状态模块)由多个模块调用(执行模块)组成。在执行模块中,您将找到命令。这是确定给定状态的确切命令的最简单方法