使用ansible脚本执行yum clean expire-cache和remove命令。

问题描述 投票:0回答:1

谁能支持一下清理和删除的同等任务?

yum clean expire-cache
yum -y remove packageX-S
yum -y install packageX-S

我已经安装了...

- name: deploy
  yum:
    name: llc-html-clients-S
    state: latest
ansible yum
1个回答
1
投票

TL;DR;

这里是你的同等任务。

- name: clean
  command: yum clean expire-cache

- name: remove
  yum:
    name: pkg-to-remove
    state: absent

- name: install
  yum:
    name: pkg-to-install
    state: present

安装和删除是用相同的模块完成 yum.

安装时将测试 installedpresent 态,除去是为了测试 removedabsent 状态:

安装。

- name: install
  yum:
    name: pkg-to-install
    state: present

小心点 yum install 还有... state: latest 是不一样的,当 yum 命令会在没有安装软件包的情况下进行安装,而在软件包已经存在的情况下不做任何操作。state: latest 如果没有安装包,将进行安装,但是 a yum update pkg-to-install 如果软件包不是最新版本。真正的等价物是 state: present.

presentinstalled 将简单地确保所需的软件包被安装。 latest 将更新指定的软件包,如果它不是最新的可用版本。

来源:/docs.comansible.comansiblelatestmodulesyum_module https:/docs.ansible.comansiblelatestmodulesyum_module.html#参数-状态。

移除。

- name: remove
  yum:
    name: pkg-to-remove
    state: absent

那么对于 clean,可惜的是,有选择不实施,因为这不是可以用幂等的方式来实现的。

请看这个关于 yum 模块页

来源:/docs.comansible.comansiblelatestmodulesyum_module.html#notes: https:/docs.ansible.comansiblelatestmodulesyum_module.html#notes。

所以,正如注释中指出的,你其实可以通过简单的 command.

- name: clean
  command: yum clean expire-cache

所以这些都是等价的。

  • 在bash中
yum clean expire-cache
yum -y remove pkg-to-remove
yum -y install pkg-to-install
  • 剧本中
- name: clean
  command: yum clean expire-cache

- name: remove
  yum:
    name: pkg-to-remove
    state: absent

- name: install
  yum:
    name: pkg-to-install
    state: present
© www.soinside.com 2019 - 2024. All rights reserved.