自动安装所需的系统包是 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
选项,请参阅 官方文档。