Ansible 搜索已加载的内核模块

Ansible 搜索已加载的内核模块

我正在尝试编写一个 ansible 剧本来检查是否为当前运行的内核加载了特定模块。

如果我执行 lsmod | grep my_module_$kernelVer

我会看到类似的东西

my_module_2_6_32_754_3_5_el6_x86_64

如果我使用的是 2.6.32-754.3.5.el6.x86_64 内核

如果我仍在该内核上并且所述模块是

my_module_2_6_32_431_el6_x86_64

我需要为服务器上的当前内核重建模块。我知道如何在 bash 中执行此操作,但我不确定如何使用 ansible 和注册命令存储特定值,我刚刚学习 ansible。

感谢您提供的任何帮助。

答案1

如果我执行 lsmod | grep my_module_$kernelVer

好的,这是一个调用外壳模块。它需要是一个 shell,因为您正在使用|,这是一个 shell 构造。

我知道如何在 bash 中执行此操作,但我不确定如何使用 ansible 和注册命令存储特定值,我刚刚学习 ansible。

您可以使用register 捕获命令的结果并稍后参考。 http://www.mydailytutorials.com/ansible-register-variables/看起来值得一读。

说了这么多,您真的确定您如此关心它的匹配吗?好吧,当然,模块未加载对您来说可能是一个大问题。但无论如何你都在测试你的内核升级,对吧?毕竟,您在这里定义的方法删除加载的模块建造一个新的。我过去加载过第三方模块,它们的名称中甚至没有内核版本,坦白说我更喜欢它。我不是内核模块方面的专家,但保持内核版本控制和模块版本分离是值得考虑的。

相关内容