ansible自动化运维

ansible自动化运维

1、实现远程连接主机

2、批量配置,批量操作,ansible可以对主机进行组划分,也可以把名下所有的主机进行划分,进行批量的操作。

3、远程自动化运维(脚本-------------playbook剧本)

ansible是基于python语言开发的,配置管理和部署应用的工具。

批量的配置,部署,管理"上千台"主机。

ansible只要在一台主机上就可以对其他主机进行操作。

4、ansible的工作模式:没有固定的客户端这一说法,不是c/s。

使用模块来进行工作,ansible的模块有很多,copy shell 真正的目标主机上执行任务的是模块。

5、ansible的特性:

幂等性,计算机中的概念,在幂等操作中,无论执行多少次,结果都是一样的,多次执行相同的操作,不会产生不同的结果。

在ansible中,如果你的操作是符合幂等性,那么不会对目标主机产生额外的副作用。

6、ansible的组件:

1、lnventory 主机清单 主机组

2、modules 模块----------学习的重点

3、plugins 插件

4、playbooks 剧本(脚本) ----------重点

ansible的优点:

部署快,只要能上网,或者有源码包,安装部署很简单

基于yaml格式编写的脚本

同一台服务器上多次执行同一个任务没有任何副作用

缺点:

语法要专门学

主机和目标主机必须都是linux,主机和server

命令格式:

ansible all -m command -a 'date'

ansible 固定开头

all:<组名,ip,all,>声明操作的对象

-m 指定模块

command 就是模块名

-a 指定参数(指定操作)

"date":具体要执行的命令

1、command模块

就是在目标主机执行命令,不支持管道符,也不能使用重定向

chdir=/opt 声明目标主机的目录

creates:判断指定的文件是否存在,如果存在,不执行后续的操作

removes:判断指定的文件是否存在,如果存在,执行后续的操作

2、shell模块

就是command模块的升级,但是可以使用管道符,可以重定向还可以使用连接符链接多个命令。

&&逻辑且,所有的命令必须执行成功才算完成

;逻辑或,失败一个任务不影响全局的执行

3、cron模块

分/时/日/月/周
minute/hour/day/month/weekday

-m cron

name 计划任务的名称

job: 计划的执行的命令

stat:present 表示添加,默认就是添加可以不写

absent 表示移除

删除定时任务

4、user和group

-m user

-m group

name 用户名或者组名 必有参数

state=present | absent

创建 删除

uid

gid

shell:默认就是/nin/bash

create_home yes | no 是否替换用户的家目录

remove=yes | no 删除用户时是否删除家目录

password 创建用户的登入密码

system yes | no 表示该用户是否是系统用户

创建用户

修改家目录

删除用户

创建组

删除组

5、copy复制

dest: 文件复制到目标主机的位置

src:源文件,主机的文件------------》目标主机

如果复制目录,源文件是目录,那么目标主机的路径也是目录

mode:修改目标文件权限

owner:文件的所有者

group:文件的所在组

content:复制输出的内容到目标主机,使用content就不能使用src

复制配置文件到目标主机

将内容重定向追加到目标主机

复制目录

剪切

6、file模块----和copy有相似之处

owner 所有者

group 所在组

mode 权限

path----------->目标主机的文件路径

state------->link作为软连接 touch 创建 absent 删除

src-------------->指定创建的文件为软连接

7、hostname 设置目标主机的主机名

8、ping 测试目标主机的连通性

9、yum/apt 模块 安装和卸载

10、service模块。

也可以用command或者shell模块-----systemctl 对服务状态进行控制

name=软件名

enabled=true---- 开机自启

state=started stopped restarted 开 停 重启

runlevel=40 设定开机自启动的运行级别。数字越大,级别越高

重启

开机自启

11、iptables------ubuntu和centos

firewalld ------- centos

对端口进行放行和删除策略

ubuntu

centos

放行

删除

12、script模块

指定本地的脚本,然后脚本中的命令在目标主机执行,结果也是输出到目标主机。

13、setup模块 收集节点信息,查看目标主机的配置信息

通过facts组件收集

查看内核

查看系统

可以不用设置免密登入

defaults

host_key_checking = False #禁止使用ssh的密钥检查

inventory = /etc/ansible/hosts #指定主机清单的文件

forks = 20 #同时可以对多少主机进行配置,默认是5,可以提高执行的速度

pipelining = True #减少对ssh会话中的操作,提高性能

strategy = free #任务会立即对下一个主机并行执行,不用等待其他主机完成

retry_files_enabled = False #如果任务失败,禁用自动重试的功能

指定ip范围

ansible实操

test1 ansible

test2 目标主机1

test3 目标主机2

test1

安装ansible

apt -y install ansible

设置免密登入

提取出ip地址

相关推荐
安冬的码畜日常18 分钟前
【AI 加持下的 Python 编程实战 2_13】第九章:繁琐任务的自动化(中)——自动批量合并 PDF 文档
人工智能·python·自动化·ai编程·ai辅助编程
三不原则24 分钟前
日志管理工具 ——ELK Stack
运维·elk
qinyia27 分钟前
云原生运维与混合云运维:如何选择及 Wisdom SSH 的应用
运维·云原生·ssh
字节高级特工1 小时前
线程互斥锁:守护临界区的关键
linux·运维·服务器·c语言
木子欢儿2 小时前
在 Debian 12 上安装 Xfce 桌面
java·linux·运维·服务器·debian
coder_lorraine3 小时前
【Linux系列】Linux Snap 安装与使用指南:高效管理应用的神器
linux·运维
zhuyan1083 小时前
【ROS2】常用命令
linux·运维·服务器
涛思数据(TDengine)3 小时前
可信数据库大会现场,TDengine 时序数据库展示核电场景下的高性能与 AI 创新
大数据·运维·数据库·人工智能·时序数据库·tdengine·涛思数据
DARLING Zero two♡3 小时前
【Linux操作系统】简学深悟启示录:进程初步
linux·运维·服务器
努力一点9483 小时前
ubuntu22.04系统实践 linux基础入门命令(三) 用户管理命令
linux·运维·服务器·人工智能·ubuntu·gpu算力