私が開発している役割については、カーネルのバージョンが特定のバージョンよりも大きいことを確認する必要があります。
事実を発見しましたがansible_kernel
、これを他のバージョンと比較する簡単な方法はありますか? のバージョン文字列を手動で展開して数値を比較しようと思ったのですが、バージョン文字列を.
展開するためのわかりやすいフィルターさえ見つからないので、途方に暮れています。
私が開発している役割については、カーネルのバージョンが特定のバージョンよりも大きいことを確認する必要があります。
事実を発見しましたがansible_kernel
、これを他のバージョンと比較する簡単な方法はありますか? のバージョン文字列を手動で展開して数値を比較しようと思ったのですが、バージョン文字列を.
展開するためのわかりやすいフィルターさえ見つからないので、途方に暮れています。
そのためのテストがあります:
{{ ansible_distribution_version is version('12.04', '>=') }}
{{ sample_version_var is version('1.0', operator='lt', strict=True) }}
テスト構文がフィルターから厳密に分離されているため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) }}
...
代わりにシェルモジュールを使用することを考えましたか? 例えば:
- 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"