私が開発している役割のために、カーネルのバージョンが特定のバージョンよりも大きいことを確認する必要があります。Ansibleのカーネル(または他の)バージョン番号を比較する方法
私はansible_kernelの値を見つけましたが、これを他のバージョンと簡単に比較する方法はありますか?私は手動でバージョン文字列を展開すると思った。 'の&は数字を比較するが、私はバージョン文字列を爆発させるフレンドリーなフィルタを見つけることさえできないので、私は迷っている。
ありがとうございます。
t
私が開発している役割のために、カーネルのバージョンが特定のバージョンよりも大きいことを確認する必要があります。Ansibleのカーネル(または他の)バージョン番号を比較する方法
私はansible_kernelの値を見つけましたが、これを他のバージョンと簡単に比較する方法はありますか?私は手動でバージョン文字列を展開すると思った。 'の&は数字を比較するが、私はバージョン文字列を爆発させるフレンドリーなフィルタを見つけることさえできないので、私は迷っている。
ありがとうございます。
t
代わりにシェルモジュールを使用することを考えましたか?例えば:
- 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"
モジュールの代わりにシェルを使用するのは、嫌なパターンです。 –
また、文字列を比較しても、正しい順序でバージョンを配置する必要はありませんか? (私はこれをテストしていません) – TobyG
そのためtestがある:分割のため
{{ ansible_distribution_version | version_compare('12.04', '>=') }}
{{ sample_version_var | version_compare('1.0', operator='lt', strict=True) }}
ありがとう@ konstantin-suvorov。私はこれでドキュメントを見つけましたが、「厳密」なものの説明を見つけることはできません。私はこの情報をどこに見つけることができるか知っていますか? – TobyG
StrictVersion vs LooseVersionについての[this(http://stackoverflow.com/a/11887885/2795592)の回答を参照してください。 –
、2.0 ansibleので、あなたができ '{{variable.split( '')}}'。 'with_together'を使ってループを使って、メジャー、マイナー、パッチのバージョンを比較することができます –
プレイブックを投稿できますか? (あなたが何を持っていても) – helloV