【ルール説明・安全性】最新・パッケージ-最新
这篇文章是 Ansible lint Advent Calendar 2022 第16天的文章。
这次我们将介绍最新的规则及最新的套餐。
最新的
最新版本将验证ansible.builtin.git模块和community.general.hg模块在获取源代码时是否没有副作用。
有问题的代码之一
---
- name: Example for `latest` rule
hosts: localhost
tasks:
- name: Risky use of git module
ansible.builtin.git:
repo: "https://foosball.example.org/path/to/repo.git"
version: HEAD # <-- HEADが指定されているためリポジトリの更新状態によりどのバージョンのコードが取得されるのか決まっていない
修正过的代码之一
---
- name: Example for `latest` rule
hosts: localhost
tasks:
- name: Safe use of git module
ansible.builtin.git:
repo: "https://foosball.example.org/path/to/repo.git"
version: abcd1234... # <-- コミットのSHA・タグ・ブランチ名等を指定し一意のコミットIDが指定されるようにする
有问题的代码2
---
- name: Example for `latest` rule
hosts: localhost
tasks:
- name: Risky use of git module
ansible.builtin.git:
repo: "https://foosball.example.org/path/to/repo.git"
version: main # <- mainブランチが指定されている
修正后的代码2
---
- name: Example for `latest` rule
hosts: localhost
tasks:
- name: Safe use of git module
ansible.builtin.git:
repo: "https://foosball.example.org/path/to/repo.git"
version: main # noqa: latest <- mainブランチが常に安全であると確信がある場合はAnsible lintの検証をスキップする
最新版本的软件包
package-latest会验证操作系统的软件包管理器是否可以安全地安装软件,以避免出现副作用。
根据建议,当使用Ansible进行新安装软件包时应指定版本,而在更新已安装的软件包时应避免安装不必要的软件。
有问题的代码之一
---
- name: Example playbook
hosts: localhost
tasks:
- name: Install Ansible
ansible.builtin.yum:
name: ansible
state: latest # <- 最新版のパッケージをインストールする
被修改的代码1
---
- name: Example playbook
hosts: localhost
tasks:
- name: Install Ansible
ansible.builtin.yum:
name: ansible-2.12.7.0 # <- バージョンを指定する
state: present
有问题的代码二
---
- name: Example playbook
hosts: localhost
tasks:
- name: Install Ansible-lint
ansible.builtin.pip:
name: ansible-lint
args:
state: latest # <- 最新版のパッケージを新規インストールする
修改后的代码2
---
- name: Example playbook
hosts: localhost
tasks:
- name: Install Ansible-lint
ansible.builtin.pip:
name: ansible-lint
args:
state: present
version: 5.4.0 # <- バージョンを指定する
第3個有問題的程式碼是什麼?
---
- name: Example playbook
hosts: localhost
tasks:
- name: Install some-package
ansible.builtin.package:
name: some-package
state: latest # <- 最新版のパッケージをインストールする
第三个修正后的代码。
---
- name: Example playbook
hosts: localhost
tasks:
- name: Install some-package
ansible.builtin.package:
name: some-package
state: present # <- presentを指定する
第四段有问题的代码是什么?
---
- name: Example playbook
hosts: localhost
tasks:
- name: Install Ansible with update_only to false
ansible.builtin.yum:
name: sudo
state: latest
update_only: false # <- パッケージを最新版にアップデートする
第四个修订后的代码。
---
- name: Example playbook
hosts: localhost
tasks:
- name: Update Ansible with update_only to true
ansible.builtin.yum:
name: sudo
state: latest
update_only: true # <- アップデートの実行はするが他のソフトウェアはインストールしない
参考网站
-
- latest — Ansible Lint Documentation
- package-latest — Ansible Lint Documentation