文章目录
- 一、软件包管理模块
- 1.1、功能
- 1.2、常用参数
- 1.3、示例
- 二、服务模块
- 2.1、功能
- 2.2、服务模块常用参数
- 2.3、示例
- 三、文件与目录模块
- 3.1、file功能
- 3.2、常用参数
- 3.3、示例
- 四、收集模块-setup
- 4.1、setup功能
- 4.2、示例
一、软件包管理模块
1.1、功能
Ansible 提供了多种软件包管理模块,用于在不同的操作系统上安装、卸载、更新软件包。如yum模块用于 CentOS 等系统,apt模块用于 Ubuntu 等系统。
1.2、常用参数
- name:要安装或管理的软件包名称,可以指定具体版本,如package_name=1.0.0。
- state:取值为present(安装软件包)、absent(卸载软件包)、latest(安装最新版本的软件包)等。
1.3、示例
- 安装httpd服务
ansible webserves -m yum -a 'name="httpd" state=latest'
使用 Ansible 工具在名为 webserves 的主机或主机组上执行一个任务,该任务是使用 yum 模块进行软件包管理操作;检查 httpd 软件包的当前安装状态:如果 httpd 未安装,Ansible 将使用 yum 安装该软件包的最新版本;如果 httpd 已安装,但不是最新版本,Ansible 将使用 yum 更新该软件包到最新版本。
命令组成部分
ansible
:Ansible 的命令行工具,用于执行 Ansible 任务。webserves
:目标主机或主机组的名称,Ansible 将在这些主机上执行相应的任务。-m yum
:指定使用 yum 模块。yum 模块是 Ansible 中专门用于管理基于 Red Hat 系列操作系统(如 CentOS、RHEL)的软件包的模块。-a 'name="httpd" state=latest'
:模块的参数部分,以键值对的形式给出。name="httpd"
:指定要操作的软件包名称为 httpd,即 Apache HTTP Server 软件包。state=latest
:指定软件包的状态为 latest,这意味着 Ansible 将确保 httpd 软件包在远程主机上处于最新版本。如果 httpd 已经安装,但不是最新版本,Ansible 会自动更新它;如果尚未安装,Ansible 会安装最新版本。
检查host01机子,httpd服务已经安装完成:
查看帮助文档,可使用命令:
ansible-doc yum
- 卸载httpd服务
ansible webserves -m yum -a 'name="httpd" state=absent'
二、服务模块
2.1、功能
在 Ansible 中,服务模块用于管理系统服务,例如启动、停止、重启服务,以及设置服务是否开机自启等操作。
2.2、服务模块常用参数
- name:服务的名称,这是必需的参数,用于指定要操作的服务,例如 httpd、nginx、sshd 等。
- state:服务的状态,常见的取值有:
1. started:启动服务。
2. stopped:停止服务。
3. restarted:重启服务。
4. reloaded:重新加载服务(适用于支持重新加载的服务,如 nginx 可以重新加载配置而无需完全重启)。 - enabled:服务的开机自启设置,取值为 true 或 false。
1. true:设置服务开机自启。
2. false:取消服务开机自启。
2.3、示例
以下是几个使用服务模块的示例,以 httpd 服务为例:
ansible webserves -m service -a 'name="httpd" state=started'
该命令使用 Ansible 工具在 webserves 主机或主机组上执行一项服务管理任务。通过 service 模块,将 httpd 服务的状态设置为 started,即启动 httpd 服务。
- 执行流程
- Ansible 接收到命令后,会首先识别出 webserves 主机或主机组,这些是要操作的目标。
- 然后使用 service 模块对这些目标主机进行服务管理操作。
- 根据提供的参数,查找名为 httpd 的服务。
- 最后将 httpd 服务的状态设置为 started,如果 httpd 服务尚未启动,Ansible 会启动它;如果已经启动,Ansible 会确保其处于启动状态(不会重复启动)。
三、文件与目录模块
3.1、file功能
用于设置文件或目录的属性,如权限、所有者、链接等,还可以创建或删除文件、目录、软链接。
3.2、常用参数
- path:指定文件或目录的路径,这是必需的参数。
- state:
1. file:表示文件或目录必须存在,如果不存在则创建。
2. directory:表示创建目录,如果目录不存在。
3. link:创建软链接。
4. hard:创建硬链接。
5. absent:删除文件或目录。 - mode:设置文件或目录的权限,例如 mode: ‘0644’。
- owner:设置文件或目录的所有者,例如 owner: root。
- group:设置文件或目录的所属组,例如 group: root。
- src:当 state 为 link 或 hard 时,指定源文件的路径,用于创建链接。
3.3、示例
- 创建文件
创建一个文件并设置权限777。
ansible webserves -m file -a 'path=/tmp/88.txt mode=777 state=touch'
检查host01主机,已经创建了88.txt文件:
ls /tmp/88.txt -l
- 删除文件
ansible webserves -m file -a 'path=/tmp/88.txt mode=777 state=absent'
- 创建目录
ansible webserves -m file -a 'path=/tmp/99 mode=777 state=directory'
查看host01主机中是否创建文件夹?
ls -l -d /tmp/99
四、收集模块-setup
4.1、setup功能
收集远程主机的系统信息,如主机名、IP 地址、操作系统版本、内存信息等。
主要功能
- setup 模块会自动收集远程主机的各种系统信息,这些信息包括但不限于:
1. 硬件信息:如 CPU 核心数、内存大小、磁盘信息、网络接口信息等。
2. 操作系统信息:操作系统类型(如 RedHat、Debian、Ubuntu 等)、操作系统版本、内核版本等。
3. 用户信息:当前登录用户、用户组等。
4. 环境信息:环境变量、路径信息等。
4.2、示例
收集主机信息并存储为变量。
ansible host01 -m setup
#此命令输出信息很多
ansible host01 -m setup -a 'filter=ansible_all_ipv4_addresses'
世界上最短的路是回家的路,走起来总是那么愉悦;最熟悉的声音是浓浓的乡音,听起来总是那么亲切。