📅  最后修改于: 2020-12-26 12:31:51             🧑  作者: Mango
APT代表“高级包装工具”,它是Ubuntu中首选的软件包管理工具集。它允许我们安装新软件包,更新它们,以及从Ubuntu或Debian系统中删除软件包。这是3个与APT相关的命令行工具,例如:
Apt-get:使用此工具可以完成所有基本的软件包管理操作。 Ansible apt-get模块提供此功能。
Apt-add-repository:用于将新的存储库添加到存储库列表。默认存储库可能没有所有软件包的最新版本。因此,您需要为某些软件维护者添加其他存储库。 Ansible apt_repository模块提供了添加新存储库的功能。
Apt-key:用于管理用于验证apt软件包的密钥列表。 Ansible apt_key模块用于管理密钥。
要安装新软件包,必须在name参数中提供软件包的名称以及所需的软件包状态。
程序包的默认状态为“存在”。另外,最好将update_cache设置为true。因此,您可以确保索引与源列表同步。这与在安装软件包之前运行apt-get update命令相同。
下面的示例将进行缓存更新以同步索引。检查目标服务器上是否安装了“ zip”软件包。如果未安装,则将安装该软件包。如果该软件包已安装,则不会升级。
-hosts: loc
tasks:
-name: Ansible apt install packages
apt:
name: zip
state: present
update_cache: true
1.安装最新版本的软件包
如果将软件包的状态设置为“ present”,则Ansible将仅检查软件包是否存在。因此,如果有新软件包,将无法安装。
如果要安装最新的apt软件包,则必须将state参数设置为最新的。
这将确保安装了最新版本的软件包。下面的示例将首先更新缓存,然后安装最新的zip软件包,例如:
-hosts: loc
tasks:
-name: ansible apt install latest version
apt:
name: zip
state: latest
update_cache: true
2. Ansible安装多个软件包
您可以使用with_items并组合这些任务,而不必编写多个任务来安装软件包。
在下面的示例中,我们将安装3个软件包:docker-ce,Nginx和git。
-hosts: loc
tasks:
-name: ansible apt with_items
apt:
name: "{{item}}"
update_cache: true
state: present
with_items:
-'docker-ce'
-'nginx'
-'git'
3. Ansible Apt临时
您还可以使用ad-hoc方法通过apt模块安装新软件包,例如:
ansible all -m apt -a "name=nginx state=absent" -i inventory.ini
您也可以通过将状态参数设置为不存在,使用apt模块删除软件包。
下面的示例将删除zip软件包。由于该模块是幂等的,因此如果没有该软件包,它将不会出错。
-hosts: loc
tasks:
-name: ansible apt remove package
apt:
name: zip
state: absent