一、Ansible搭建

安装EPEL仓库
dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm -y
安装ansible
dnf install ansible
查看ansible版本
ansible --version

在/etc/ansible/hosts文件里面添加一个管理组

例:

使用 ssh-keygen 命令生成本地用户的公钥和私钥
使用以下命令在 Ansible 服务器及其客户端之间交换公钥
ssh-copy-id -i .ssh/id_rsa.pub root@ipaddress
分发完成使用ping模块验证ansible服务器与客户端的连接
ansible web -m ping
ps:注意命令中并没有指定具体的清单文件,那么他将引用默认主机文件/etc/ansible/hosts

二、Ansible模块的基本使用

Command&Shell模块
[root@admin /]# ansible 192.168.122.129 -m command -a "date"    指定IP执行date
192.168.122.129 | CHANGED | rc=0 >>
Thu Jul  1 21:33:00 EDT 2021
[root@admin /]# ansible all -m command -a "hostname"    查看所有主机名
192.168.122.128 | CHANGED | rc=0 >>
admin
192.168.122.129 | CHANGED | rc=0 >>
node1
DNF模块
[root@admin /]# ansible all -m dnf -a "name=nginx state=installed"   安装软件
[root@admin /]# ansible all -m dnf -a "name=nginx state=absent"     卸载软件
[root@admin /]# ansible all -m command -a "rpm -q nginx"    检查是否安装成功
192.168.122.128 | CHANGED | rc=0 >>
nginx-1.14.1-9.module_el8.0.0+184+e34fea82.x86_64
192.168.122.129 | CHANGED | rc=0 >>
nginx-1.14.1-9.module_el8.0.0+184+e34fea82.x86_64
Service模块
[root@admin /]# ansible all -m service -a "name=nginx state=started"     启动服务
[root@admin /]# ansible all -m command -a "systemctl status nginx "  检查服务是否开启常用参数:
name参数:此参数用于指定需要操作的服务名称比如 nginx
state参数:此参数用于指定服务的状态,比如我们想要启动远程主机中的 nginx,则可以将 state 的值设置为 started,如果想要停止远程主机中的服务,则可以将 state 的值设置为 stopped, 此参数的可用值有 started、stopped、restarted、reloaded
enabled参数:此参数用于指定是否将服务设置为开机启动项,设置为 yes 表示将对应服务设置为开机启动 设置为 no 表示不会开机启动
Copy模块
参数详情:
src:指定源文件位置(管理机上的文件)
dest:指定你要推送到主机的目标位置
owner:指定属主
group:指定属组
mode:指定权限
[root@admin /]# ansible 192.168.122.129 -m copy -a "src=/backup/zabbix.sh dest=/ owner=root group=root mode=0644"
Get_url模块
[root@admin /]# ansible 192.168.122.129 -m get_url -a "url=http://192.168.122.128/test/sh.sh dest=/"
参数详情:
url:指定下载文件的地址
dest:指定下载的路径
Script模块
[root@admin ~]# echo "touch /backup" > a.sh      创建脚本文件
[root@admin ~]# cat a.sh
touch /backup
[root@admin ~]# ansible 192.168.122.129 -m script -a "/root/a.sh"
Yum_repository模块
[root@admin /]# ansible all -m yum_repository -a 'name=centos description="centos" baseurl=file:///mnt gpgcheck=no enabled=yes file=centos'       创建yum源[root@admin /]# ansible all -m yum_repository -a 'file=centos name=centos state=absent'      删除yum源常用参数:name:必须参数 用于指定要操作的唯一的仓库ID 也就是”.repo”配置文件中每个仓库对应的”中括号”内的仓库IDbaseurl:此参数用于设置 yum 仓库的 baseurldescription:此参数用于设置仓库的注释信息 也就是”.repo”配置文件中每个仓库对应的”name字段”对应的内容file:此参数用于设置仓库的配置文件名称 即设置”.repo”配置文件的文件名前缀 在不使用此参数的情况下 默认以 name 参数的仓库ID作为”.repo”配置文件的文件名前缀 同一个”.repo” 配置文件中可以存在多个 yum 源enabled:此参数用于设置是否激活对应的 yum 源 此参数默认值为 yes 表示启用对应的 yum 源 设置为 no 表示不启用对应的 yum 源gpgcheck:此参数用于设置是否开启 rpm 包验证功能 默认值为 no 表示不启用包验证 设置为 yes 表示开启包验证功能gpgcakey:当 gpgcheck 参数设置为 yes 时 需要使用此参数指定验证包所需的公钥 state:默认值为 present 当值设置为 absent 时 表示删除对应的 yum 源 M源
Group模块
[root@admin /]# ansible all -m group -a "name=admin"    创建组参数详情:Name:组名称System:是否为系统组 yes/no 默认是noState:删除或创建组 present/absent 默认是present
Selinux模块
[root@admin /]# ansible all -m selinux -a "state=disabled"SELinux的三种模式:enforcing, permissive, disabled
Cron模块
参数详情:
name:指定任务名称 可以根据任务名称修改或删除对应的任务 搭配state使用
state:absent表示删除对应的任务
minute:指定分钟
hour:指定小时
day:指定日
month:指定月
weekday:指定周几
special_time:reboot|yearly|monthly|weekly|daily|hourly都未指定时表示每分钟执行
user:指定计划任务属于哪个用户 默认管理员用户
disabled:注释计划任务使其失效但是一定要写全原任务的name、minute、hour、month、weekday、job、如果不一样 则是修改原计划任务内容
backup:backup=yes表示修改或删除对应计划任务时 会先进行备份 备份路径/tmp/crontab+随机字符

三、Ansible playbook剧本

playbook格式(语法格式非常关键)

playbook由YMAL语言编写,YMAL格式是类似于JSON的文件格式,便于理解和阅读,同时便于书写

一个剧本里面可以有多个play,每个play只能有一个tasks,每个tasks可以有多个name

playbook的基础组件:
name:定义任务模块名称
hosts:定义执行任务的主机
user:用于指定远程主机上执行任务的用户
task:指定一个任务
vars:定义变量
vars_files:调用定义变量文件
notify:任务执行结果如果是发生更改了的则触发定义在handler的任务执行
handlers:用于当前关注的资源发生变化时采取一定指定的操作

案例一:在所有节点上创建一个文件

检测语法

运行playbook


案例二

handlers:由特定条件触发的Tasks
handlers:处理器
notify:触发器
语法:
tasks:
- name: TASK_NAMEmodule: arguments               #1.上面任务执行成功,然后notify: HANDLER_NAME        #2.通知他
handlers:
- name: HANDLER_NAME        #3.一一对应,这里的描述与notify定义的必须一样module: arguments         #4.执行这个命令

运行playbook

检测是否写入成功


案例三

循环:迭代 需要重复执行的任务

对迭代项的引用 固定变量名为”item” 使用with_item属性给定要迭代的元素


基于字符串列表元素实战:

案例四

自定义vars_files变量

变量调用语法:{{ var_name }}

创建变量目录:

创建测试文件

创建playbook引用变量文件

运行playbook,检查是否执行成功

root@localhost ansible]#** **ansible-playbook vars.yml
[root@localhost ansible]# ansible all -m shell -a "tree /opt/"

Ansible自动化运维工具配置与管理(CentOS8)相关推荐

  1. 大型企业中如何批量管理千万台服务器之ansible自动化运维工具详解 [⭐建议收藏⭐]

    文章目录 ansible 自动化运维工具 详解 关于作者 作者介绍 一.ansible 概述 1.1 ansible 概述 1.2 是什么要使用 ansible 1.3 ansible 功能 1.4 ...

  2. ansible自动化运维工具

    ansible自动化运维工具 ansible自动化运维脚本工具 ansible自动化运维工具 一.ssh工作原理和基本命令 1.ssh原理 2.ssh的基本命令 二.anible 自动化运维工具 1. ...

  3. Ansible自动化运维工具介绍与部署

    ansible自动化运维工具介绍与部署 文章目录 一.什么是自动化运维? 二.常用的自动化运维工具 2.1 Ansible 2.2 SaltStack 2.3 Puppet 2.4 三种自动化工具特点 ...

  4. Ansible自动化运维工具介绍

    介绍 Ansible自动化运维工具,是基于Python开发的,可以实现批量系统配置,批量程序部署.批量运行命令等等. ansible是基于模块工作的,本身没有批量部署的能力.真正具有批量部署的是ans ...

  5. 【Ansible自动化运维工具】Ansible变量之lookup生成变量方法

    [Ansible自动化运维工具]Ansible变量之lookup生成变量方法 一.lookup插件介绍 1.lookup简介 2.lookup使用场景 3.lookup获取的数据源 4.lookup的 ...

  6. 【Ansible自动化运维工具】Ansible变量之Facts变量

    [Ansible自动化运维工具]Ansible变量之Facts变量 一.Ansible facts介绍 1.facts组件简介 2.facts组件的使用场景 二.Ansible facts的基本使用 ...

  7. Ansible自动化运维工具使用

    概述 本文描述自动化运维工具 Ansible 的安装及基础使用方法,包含: Centos 下的安装 主机配置 Ad-Hoc command(命令行执行) Playbook (任务剧本) Ansible ...

  8. ansible——自动化运维工具

    目录 ansible 简介 ansible 是什么? ansible 特点 ansible 架构图 ansible 任务执行 ansible 任务执行模式 ansible 执行流程 ansible 命 ...

  9. 自动化运维工具Puppet(管理资源)

    接上文<自动化运维工具Puppet>http://kaliarch.blog.51cto.com/8966921/1973736 利用模块与模版管理agent端资源 一.模块管理 环境安装 ...

最新文章

  1. 【Android 逆向】Android 权限 ( adb 降权相关的属性 | ro.secure 属性 | ro.debuggable 属性 | service.adb.root 属性 )
  2. make j4什么意思_为什么天天坚持撸铁 肌肉增长不明显
  3. hadoop0.20.0第一个例子
  4. python写进程_将数据作为后台进程在Python中写入磁盘
  5. C++安全方向(三):3.8 openssl单项散列章节总结
  6. 虚拟机禅道服务器ip,Linux系统(虚拟机)安装禅道
  7. python统计字典里面value出现的次数_python 统计list中各个元素出现的次数的几种方法...
  8. angular中利用zone避归没必要的开销提高程序的性能demo
  9. 苹果匠艺:乔布斯身边的天才
  10. CANoe测试TC8的环境搭建以及带有VLAN标签的DUT网卡该如何配置CANoe测试环境
  11. windows命令提示符及其操作的相关命令
  12. mysql磁盘读写每秒多少正常_一般硬盘读取速度和写入速度是多少
  13. 《零基础入门学习Python》第031讲:永久存储:腌制一缸美味的泡菜
  14. 读书笔记之:《心流 最优体验心理学》 米哈里·契克森米哈赖 第一章、第二章
  15. python和javascript哪个好学-python和js哪个难学
  16. e3服务器性能怎么样,Inte至强 E3-1230 V3性能怎么样?跟 i7 相比呢?
  17. 桌面每日一句--桌面翻译工具(有道翻译,微软翻译,Google翻译)
  18. Linux中级——“驱动” 控制硬件必须学会的底层知识
  19. 常见功能点测试用例大全
  20. Cesium-Primitive图元的讲解

热门文章

  1. Directory Opus12.6在win11下右键菜单显示问题
  2. Spring开发Service层
  3. 小程序源码:王者荣耀改重复名,空白名最低战力查询助手
  4. 2018年湖南省第十四届大学生计算机程序设计竞赛 CSU 2164: 2018
  5. poi读取excel工具类
  6. 一个自动生成web和微服务项目代码工具sponge
  7. Redis实战之微博关注功能
  8. U盘System Volume Information文件夹的删除
  9. excel数据整理:网络表格数据规范处理方法
  10. [ZZ]09年第一季度中国互联网经济及核心行业数据发布