如何在 Ansible Playbooks 中安装和管理系统软件包

自动安装所需的系统包是 Ansible 播放书中常见的操作任务,因为典型的应用程序堆栈需要来自不同来源的软件。

apt模块管理 Debian 基于的操作系统上的系统包,如 Ubuntu,我们在本指南中使用的远程节点上的分布。

在你的ansible-practice目录中创建一个名为playbook-09.yml的新文件:

1nano ~/ansible-practice/playbook-09.yml

然后将以下行添加到新播放簿文件中:

1[label ~/ansible-practice/playbook-09.yml]
2---
3- hosts: all
4  become: yes
5  tasks:
6    - name: Update apt cache and make sure Vim is installed
7      apt:
8        name: vim
9        update_cache: yes

保存并关闭文件,当你完成。

请注意,我们在游戏开始时包含了成为指令,这是必要的,因为安装包需要管理系统权限。

删除一个软件包是以类似的方式进行的,唯一的变化是你必须将软件包状态定义为缺少状态指令有一个默认值为现在,这将确保软件包安装在系统上,无论是哪个版本。如果没有,软件包将被安装。为了确保您有最新版本的软件包,您可以使用最新的代替。

请记住在运行此播放书时提供K选项,因为它需要sudo权限:

1ansible-playbook -i inventory playbook-09.yml -u sammy -K
 1[secondary_label Output]
 2BECOME password: 
 3
 4PLAY [all] **********************************************************************************************
 5
 6TASK [Gathering Facts] **********************************************************************************
 7ok: [203.0.113.10]
 8
 9TASK [Update apt cache and make sure Vim is installed] **************************************************
10ok: [203.0.113.10]
11
12PLAY RECAP **********************************************************************************************
13203.0.113.10                : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0

安装多个包时,您可以使用 loop并提供包含您要安装的包的名称的数组。

在你的 Ansible 控制节点上,在你的ansible-practice目录中创建一个名为playbook-10.yml的新文件:

1nano ~/ansible-practice/playbook-10.yml

将以下内容添加到新播放簿文件中:

 1[label ~/ansible-practice/playbook-10.yml]
 2---
 3- hosts: all
 4  become: yes
 5  tasks:
 6    - name: Update apt cache and make sure Vim, Curl and Unzip are installed
 7      apt:
 8        name: "{{ item }}"
 9        update_cache: yes
10      loop:
11        - vim
12        - curl
13        - unzip

保存并关闭文件,当你完成。

然后,使用上面的示例中的相同连接参数运行ansible-playbook,并且不要忘记包括-K选项,因为此玩本需要管理权限:

1ansible-playbook -i inventory playbook-09.yml -u sammy -K

您将看到这样的输出,表明相同的任务通过使用我们提供的不同值进行三次迭代:‘vim’、‘curl’和‘unzip’:

 1[secondary_label Output]
 2BECOME password: 
 3
 4PLAY [all] ***************************************************************************************************************************************
 5
 6TASK [Gathering Facts] ***************************************************************************************************************************
 7ok: [203.0.113.10]
 8
 9TASK [Update apt cache and make sure Vim, Curl and Unzip are installed] **************************************************************************
10ok: [203.0.113.10] => (item=vim)
11ok: [203.0.113.10] => (item=curl)
12changed: [203.0.113.10] => (item=unzip)
13
14PLAY RECAP ***************************************************************************************************************************************
15203.0.113.10            : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0

有关如何管理系统包的详细信息,包括如何删除包和如何使用先进的apt选项,请参阅 官方文档

Published At
Categories with 技术
comments powered by Disqus