searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

Ansible:自动化运维工具初探

2023-09-19 05:43:23
13
0

简介

Ansible是一个能够部署、管理一群本地/远程宿主机/云主机的工具。Ansible通过SSH服务实现管理节点和远程节点的通信,进而对远程节点进行操作。 因此,Ansible配置时,只需保证管理节点能够通过SSH连接到远程节点即可。

构成

Ansible提供一种框架,并基于模块(module)执行真正的工作和操作。常见的ansible module有:yum、copy、template等。当Ansible调用不同module时,其对应参数也会不同。但一般而言,ansible的CLI模式为:

ansible -m <module> -a <module_parameters>

调试测试类

  • ping:管理节点ping远程节点。用于检测节点是否正确配置SSH连接,首先检查能够通过SSH登陆远程节点,然后检查远程节点的python是否满足要求。
  • debug:用于管理节点调试module,打印一些消息。

文件类

  • copy:从管理节点拷贝文件到远程节点,且可设置合理文件权限。在拷贝前,会比较文件的checksum,如果相同则不拷贝且返回状态ok;否则进行拷贝并返回changed。
  • template:从管理节点拷贝文件到远程节点,进行变量替换。与copy不同的是,template根据所需内容进行拷贝。
  • file:设置文件属性。

Linux类

  • user:管理远程节点上Linux用户。
  • yum:进行包管理。
  • service:进行服务管理。
  • firewalld:进行防火墙的服务和端口管理。

Shell类

  • shell:在远程节点上执行shell命令。
  • command:在远程节点上执行命令。

实践

管理主机

Ansible可以同时操作属于某个组的多台主机,组和主机间的关系通过host inventory文件配置,其默认路径为/etc/ansible/hosts。除默认文件外,还可使用多个inventory文件,也可从动态源或云上拉取该配置信息。

在inventory文件中,这些管理节点根据分类分为:数据库节点、服务节点、计算节点、存储节点等等;并且可以进一步划分:组、子组、主机、变量等。

[group:child]
subgroup1
subgroup2

[subgroup1]
host1
host2

[subgroup2]
host3
host4

命令行中传递host inventory方式为:

ansible -i hosts [host_group] ...
ansible --inventory-file hosts [host_group] ...

通过命令管理

ansible提供了CLI工具,叫做Ad-Hoc Commands。命令示例有:

# 命令格式 
ansible <host-pattern> [options]
# 检查所有节点是否以用户user_test创建了ansible可访问环境
ansible all -m ping -u user_test
# 在所有节点上以当前用户执行echo命令
ansible all -a "echo hello"

通过脚本管理

通过脚本可以实现代码的复用,ansible脚本的名字为playbook,使用yaml格式,文件后缀为yml。playbook中对每一组server的操作组合称为一个play,一般一个playbook中只包含一个play。

playbook yaml文件语法及组成有:远程节点、登陆用户、执行的task、响应处理handlers、变量及控制语句。

 

0条评论
0 / 1000
WhoFM
2文章数
0粉丝数
WhoFM
2 文章 | 0 粉丝
WhoFM
2文章数
0粉丝数
WhoFM
2 文章 | 0 粉丝
原创

Ansible:自动化运维工具初探

2023-09-19 05:43:23
13
0

简介

Ansible是一个能够部署、管理一群本地/远程宿主机/云主机的工具。Ansible通过SSH服务实现管理节点和远程节点的通信,进而对远程节点进行操作。 因此,Ansible配置时,只需保证管理节点能够通过SSH连接到远程节点即可。

构成

Ansible提供一种框架,并基于模块(module)执行真正的工作和操作。常见的ansible module有:yum、copy、template等。当Ansible调用不同module时,其对应参数也会不同。但一般而言,ansible的CLI模式为:

ansible -m <module> -a <module_parameters>

调试测试类

  • ping:管理节点ping远程节点。用于检测节点是否正确配置SSH连接,首先检查能够通过SSH登陆远程节点,然后检查远程节点的python是否满足要求。
  • debug:用于管理节点调试module,打印一些消息。

文件类

  • copy:从管理节点拷贝文件到远程节点,且可设置合理文件权限。在拷贝前,会比较文件的checksum,如果相同则不拷贝且返回状态ok;否则进行拷贝并返回changed。
  • template:从管理节点拷贝文件到远程节点,进行变量替换。与copy不同的是,template根据所需内容进行拷贝。
  • file:设置文件属性。

Linux类

  • user:管理远程节点上Linux用户。
  • yum:进行包管理。
  • service:进行服务管理。
  • firewalld:进行防火墙的服务和端口管理。

Shell类

  • shell:在远程节点上执行shell命令。
  • command:在远程节点上执行命令。

实践

管理主机

Ansible可以同时操作属于某个组的多台主机,组和主机间的关系通过host inventory文件配置,其默认路径为/etc/ansible/hosts。除默认文件外,还可使用多个inventory文件,也可从动态源或云上拉取该配置信息。

在inventory文件中,这些管理节点根据分类分为:数据库节点、服务节点、计算节点、存储节点等等;并且可以进一步划分:组、子组、主机、变量等。

[group:child]
subgroup1
subgroup2

[subgroup1]
host1
host2

[subgroup2]
host3
host4

命令行中传递host inventory方式为:

ansible -i hosts [host_group] ...
ansible --inventory-file hosts [host_group] ...

通过命令管理

ansible提供了CLI工具,叫做Ad-Hoc Commands。命令示例有:

# 命令格式 
ansible <host-pattern> [options]
# 检查所有节点是否以用户user_test创建了ansible可访问环境
ansible all -m ping -u user_test
# 在所有节点上以当前用户执行echo命令
ansible all -a "echo hello"

通过脚本管理

通过脚本可以实现代码的复用,ansible脚本的名字为playbook,使用yaml格式,文件后缀为yml。playbook中对每一组server的操作组合称为一个play,一般一个playbook中只包含一个play。

playbook yaml文件语法及组成有:远程节点、登陆用户、执行的task、响应处理handlers、变量及控制语句。

 

文章来自个人专栏
WhoFM
2 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
0
0