29

私が開発している役割については、カーネルのバージョンが特定のバージョンよりも大きいことを確認する必要があります。

事実を発見しましたがansible_kernel、これを他のバージョンと比較する簡単な方法はありますか? のバージョン文字列を手動で展開して数値を比較しようと思ったのですが、バージョン文字列を.展開するためのわかりやすいフィルターさえ見つからないので、途方に暮れています。

4

4 に答える 4

33

そのためのテストがあります:

{{ ansible_distribution_version is version('12.04', '>=') }}

{{ sample_version_var is version('1.0', operator='lt', strict=True) }}
于 2016-09-30T06:24:47.623 に答える
5

テスト構文がフィルターから厳密に分離されているためansible>=2.9、これは機能しません。

https://docs.ansible.com/ansible/latest/user_guide/playbooks_tests.html

実用的な解決策は次のとおりです。

{{ sample_version_var is version('1.0', operator='lt', strict=True) }}
...
于 2020-12-23T17:27:38.687 に答える
-4

代わりにシェルモジュールを使用することを考えましたか? 例えば:

   - name: Get Kernel version
     shell: uname -r | egrep '^[0-9]*\.[0-9]*' -o
     register: kernel_shell_output

   - debug: msg="{{ kernel_shell_output.stdout}}"

   - name: Add cstate and reboot bios if kernel is 4.8
     shell: echo "do what yo need to do"
     when: kernel_shell_output.stdout == "4.8"
于 2016-09-29T21:22:15.107 に答える