如何在没有主人的情况下使用 saltstack 模块?
How can I use saltstack modules without a master?
我 运行 生产中的 master minion 配置,但正在寻找无 master-less 配置。
我可以 运行 salt-call --local state.highstate 在孤立的机器上正确,但是否可以像这样使用 CLI 模块?
http://docs.saltstack.com/en/latest/ref/modules/all/salt.modules.mysql.html
编辑:
下面是一些调试和日志信息:
root@database-primary:~# salt-call --local mysql.db_exists '##########' -l debug
[DEBUG ] Reading configuration from /etc/salt/minion
[DEBUG ] Using cached minion ID from /etc/salt/minion_id: database-primary
[DEBUG ] Configuration file path: /etc/salt/minion
[DEBUG ] Reading configuration from /etc/salt/minion
[DEBUG ] Please install 'virt-what' to improve results of the 'virtual' grain.
[DEBUG ] LazyLoaded jinja.render
[DEBUG ] LazyLoaded yaml.render
[DEBUG ] LazyLoaded jinja.render
[DEBUG ] LazyLoaded yaml.render
[DEBUG ] Could not LazyLoad mysql.db_exists
'mysql'' __virtual__ returned False
root@database-primary:~# tail -100 /var/log/salt/minion
2015-03-22 13:32:52,834 [salt.config ][DEBUG ][7319] Reading configuration from /etc/salt/minion
2015-03-22 13:32:52,965 [salt.loaded.int.grains.core][DEBUG ][7319] Please install 'virt-what' to improve results of the 'virtual' grain.
2015-03-22 13:32:52,990 [salt.utils.lazy ][DEBUG ][7319] LazyLoaded jinja.render
2015-03-22 13:32:52,992 [salt.utils.lazy ][DEBUG ][7319] LazyLoaded yaml.render
2015-03-22 13:32:52,999 [salt.utils.lazy ][DEBUG ][7319] LazyLoaded jinja.render
2015-03-22 13:32:53,000 [salt.utils.lazy ][DEBUG ][7319] LazyLoaded yaml.render
2015-03-22 13:32:54,121 [salt.utils.lazy ][DEBUG ][7319] Could not LazyLoad mysql.db_exists
是的,您可以在无主模式下通过 salt-call
运行 任何您想要的执行模块(当您传入 --local
参数或在您的 minion 配置中具有 file_client: local
时)
例如如果你想通过 mysql 模块创建一个名为 newdb 的数据库:
salt-call --local mysql.db_create 'newdb' 'utf8' 'utf8_general_ci'
state.highstate
调用执行模块的另一个例子,见http://docs.saltstack.com/en/latest/ref/modules/all/salt.modules.state.html#salt.modules.state.highstate
是的,你可以运行所有执行模块都没有主人。您 运行 遇到的问题是您似乎没有安装所需的 MySQL python 模块。
确保您已经安装了 python MySQLdb
模块。
我 运行 生产中的 master minion 配置,但正在寻找无 master-less 配置。
我可以 运行 salt-call --local state.highstate 在孤立的机器上正确,但是否可以像这样使用 CLI 模块?
http://docs.saltstack.com/en/latest/ref/modules/all/salt.modules.mysql.html
编辑:
下面是一些调试和日志信息:
root@database-primary:~# salt-call --local mysql.db_exists '##########' -l debug
[DEBUG ] Reading configuration from /etc/salt/minion
[DEBUG ] Using cached minion ID from /etc/salt/minion_id: database-primary
[DEBUG ] Configuration file path: /etc/salt/minion
[DEBUG ] Reading configuration from /etc/salt/minion
[DEBUG ] Please install 'virt-what' to improve results of the 'virtual' grain.
[DEBUG ] LazyLoaded jinja.render
[DEBUG ] LazyLoaded yaml.render
[DEBUG ] LazyLoaded jinja.render
[DEBUG ] LazyLoaded yaml.render
[DEBUG ] Could not LazyLoad mysql.db_exists
'mysql'' __virtual__ returned False
root@database-primary:~# tail -100 /var/log/salt/minion
2015-03-22 13:32:52,834 [salt.config ][DEBUG ][7319] Reading configuration from /etc/salt/minion
2015-03-22 13:32:52,965 [salt.loaded.int.grains.core][DEBUG ][7319] Please install 'virt-what' to improve results of the 'virtual' grain.
2015-03-22 13:32:52,990 [salt.utils.lazy ][DEBUG ][7319] LazyLoaded jinja.render
2015-03-22 13:32:52,992 [salt.utils.lazy ][DEBUG ][7319] LazyLoaded yaml.render
2015-03-22 13:32:52,999 [salt.utils.lazy ][DEBUG ][7319] LazyLoaded jinja.render
2015-03-22 13:32:53,000 [salt.utils.lazy ][DEBUG ][7319] LazyLoaded yaml.render
2015-03-22 13:32:54,121 [salt.utils.lazy ][DEBUG ][7319] Could not LazyLoad mysql.db_exists
是的,您可以在无主模式下通过 salt-call
运行 任何您想要的执行模块(当您传入 --local
参数或在您的 minion 配置中具有 file_client: local
时)
例如如果你想通过 mysql 模块创建一个名为 newdb 的数据库:
salt-call --local mysql.db_create 'newdb' 'utf8' 'utf8_general_ci'
state.highstate
调用执行模块的另一个例子,见http://docs.saltstack.com/en/latest/ref/modules/all/salt.modules.state.html#salt.modules.state.highstate
是的,你可以运行所有执行模块都没有主人。您 运行 遇到的问题是您似乎没有安装所需的 MySQL python 模块。
确保您已经安装了 python MySQLdb
模块。