Ansibe自动化基础

目录

一.Ansibe自动化概述

1.特点

2.工作特性

3.应用场合

二.ansibe安装即相关文件说明

1.安装

2.相关文件

3.主配置文件内容详解

4.ansibe运行机制

三.ansibe管理节点命令

1.Ansibe

四.主机组配置

1.基本配置

第一种:

第二种:

2.设置SSH密钥对验证登录

五.常见模块

1.Command

2.Shell

3.Raw

4.Script

5.Ping

6.File

7.Copy

8.Service

9.Cron

10.Yum

11.user与group

12.Synchronize

13.setup

14.get_url

15.Unarchive

16.Archive

17.Template


一.Ansibe自动化概述

1.特点

1).部署简单,没有客户端,只需在主控端部署Ansible环境,被控端无需做任何操作

2).模块化:调用特定的模块,完成特定任务

3).默认使用SSH协议对设备进行管理;

4).主从集中化管理;

5).配置简单、功能强大、扩展性强;

6).支持API及自定义模块,可通过Python轻松扩展;

7).通过Playbooks来定制强大的配置、状态管理

8).对云计算平台、大数据都有很好的支持;

9).具有幂等性:一个操作在一个主机上执行一遍和执行N遍的结果是一样的

2.工作特性

(1)、连接插件connection plugins:负责和被监控端实现通信;

(2)、host inventory:指定操作的主机,是一个配置文件里面定义监控的主机;

(3)、各种模块核心模块、command模块、自定义模块;

(4)、借助于插件完成记录日志邮件等功能;

(5)、playbook:剧本执行多个任务时,非必需可以让节点一次性运行多个任务

3.应用场合

大批量部署时,集群,容器集群

二.ansibe安装即相关文件说明

1.安装

安装epel-release源

Yum -y install epel-release

安装ansibe

Yum -y install ansibe

2.相关文件

/etc/ansibe         安装目录

/etc/ansibe/hosts         部署段的hosts

/etc/ansibe/roles         playbook相关(playbook用来定义任务和工作流)

/etc/ansible/ansible.cfg         主配置文件

3.主配置文件内容详解

[defaults]

# some basic default values...

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

#library        = /usr/share/my_modules/         #指定自定义模块的路径

#module_utils   = /usr/share/my_module_utils/         #指定自定义模块使用工具

#remote_tmp     = ~/.ansible/tmp         #指定在远程主机上临时文件的存放路径

#local_tmp      = ~/.ansible/tmp         #指定在本地主机上临时文件的存放路径

#plugin_filters_cfg = /etc/ansible/plugin_filters.yml         #指定插件过滤器配置文件的路径

#forks          = 5         #设置ansible并行执行任务的最大数量(并发数)

#poll_interval  = 15         #设置ansible轮询任务状态的时间间隔

#sudo_user      = root         #指定默认的sudo用户

#ask_sudo_pass = True         #如果设置为 True,Ansible在执行需要sudo权限的任务时会提示输入sudo用户的密码

#ask_pass      = True         #如果设置为 True,Ansible在连接远程主机时会提示输入远程用户的密码。

#transport      = smart         #指定默认的连接方式

#remote_port    = 22         #指定默认的远程连接端口号

#module_lang    = C         #指定模块运行的语言环境

#module_set_locale = False         #如果设置为 True,Ansible会在执行模块时设置相应的locale环境变量

4.ansibe运行机制

Ansible:ansibe的核心模块,是Ansible自动化工具中的基础构建块

Host Inventory:主机清单,就是被管理的主机列表

Playbooks:ansibe的剧本,可想象为将多个任务放置在一起,一起执行

Core Modules:ansibe的核心模块,是Ansible框架的一部分。涵盖了各种常见的系统管理和配置操作,如文件管理、用户管理、软件包安装、服务管理、复制文件、模板渲染等

Custom Modules:自定义模块

Connection Plugins:连接插件,用于与被管控主机之间基于SSH建立连接关系

Plugins:其他插件,包括记录日志、邮件等

三.ansibe管理节点命令

1.Ansibe

-v 详细模式,若执行成功,输出详细结果

-i 指定host文件路径,默认在/etc/ansibe/hosts

-f -forks=NUMNUM默认是整数5,指定fork开启同步

-m 指定使用的module名称,默认command模块

-a 指定模块的参数

-k 提示输入sudo密码

-u 指定移动端的执行用户

-C 测试命令执行会改变什么内容,不会真正的去执行

语法:ansible -i (host文件路径) -m 模块 -a 参数

        Ansible-doc -l #列出所有模块名称

        Ansible-doc -s #查看指定模块

        Ansible-playbook [选项] playbook #运行预先编写的Playbook

                                        -e #外部变量传递

                                        -v #增加输出详细程度

                                        -C #只进行语法检查和Dry-run(模拟执行),不实际更改系统状态

四.主机组配置

1.基本配置

#设置清单列表,若在执行任务时指定清单,则该任务将在清单中指定的所有服务器中执行

第一种:

Vim /etc/ansible/hosts

[webServers]         #指定的清单名

192.168.115.131

192.168.115.132         #不用配置/etc/hosts

第二种:

192.168.112.160 server1

192.168.112.161 server2         #此类情况时,若要一起指定可直接写servers

2.设置SSH密钥对验证登录

[ansilbe]:ssh-keygen         #生成密钥(一路回车)

[ansilbe]:ssh-copy-id 192.168.112.160         #将密钥对copy到服务器

[ansilbe]:ssh 192.168.112.160         #看看是否能登入192.168.112.160

[~]:exit                 #登出

#如此,则可以使用ansible对目标清单中的主机批量执行操作,如在ansible中执行ansible server -m command -a “rpm -q httpd”则可以查看server清单中两台主机httpd的下载情况,也可以直接指定ip地址ansible 192.168.112.160 -m command -a “rpm -q httpd”

案例:1.连通性测试

Ansible 192.168.115.131 -m ping

2.主机信息查看

Ansible webserver -m shell -a ls -l /root

五.常见模块

1.Command

执行命令,但命令中不能包含“<>&”

例:ansible webs -m command -a netstat -anptu

2.Shell

执行命令,基于/bin/sh,类似于command模块,但支持更复杂的 shell 功能,也可以执行远程主机已经存在的脚本文件

例:ansible webs -m sell -a netstat -anput | grep :21

3.Raw

执行命令,不需要远程主机安装python环境

4.Script

拷贝ansible端的shell脚本至远程主机并执行,执行完毕后删除远程主机的脚本文件

Chdir #切换脚本运行结果的目录

Ansible servers -m script -a “chdir=/opt 脚本名”

5.Ping

测试连通性 ansible servers -m ping

6.File

对远程主机进行文件操作

参数:force #强制创建软连接 yes/no ,用于使用ansible编译安装软件后的命令优化

        Group         #文件属组

        Owner         #文件属主

        Mode         #文件权限

        Path         #文件路径

        Stat         #文件类型 directory #当state=directory时,Ansible会确保指定的路径是一个目录,并根据需要创建它。如果目录已经存在, Ansible不会执行任何操作,除非指定了额外的参数,如recurse=yes来递归地设置目录权限

                                        Link #当state=link时,Ansible会创建一个符号链接(soft link)

                                        Hard #当state=hard时,Ansible会创建一个硬链接(hard link)

                                        Touch #当state=touch时,Ansible会创建一个新的空文件或者更新已存在的文件的修改时间。只需提供path参数来指定文件的路径

                                        Absent #当state=absent时,Ansible会确保指定的文件或目录不存在。如果文件或目录存在,Ansible将删除它。对于目录,可以使用recurse=yes参数来递归删除其中的所有内容

案例:ansible 192.168.115.131 -m file -a "path=/opt/t1 state=directory mode=0700 owner=juexing group=juexing"

7.Copy

拷贝文件至远程主机

参数:backup         #若目标文件存在,则覆盖前是否进行备份 yes/no

        Content         #d等效于src

        Src         #要复制文件在本地的路径,若复制目录则需要在目录名称结尾处添加/

        Dest         #复制文件到远程主机的绝对路径,若复制源是目录,则目录也必须是目录

        Directory_mode         #采用递归的形式设置目录权限

        Force         #是否进行强制覆盖 yes/no

        Others(不是参数)         #file模块的选项写在此处  owner=xxx group=xxx

案例:复制文件并设置权限

ansible webs -m copy -a "src=/etc/yum.repos.d/epel.repo dest=/opt/epel.repo mode=0444 owner=juexing group=juexing "

8.Service

对远程主机的服务进行管理

参数:enabled #开机自启 yes/no

        Name #服务名称

        Parttern #定义模式

        Sleep #若执行了restarted,该时间设置stop到start的间隔时间

        State started #开启

        Stopped #关闭

        Restarted #重启

        Reloaded #平滑重启

案例: #对192.168.115.131的httpd服务进行启动操作

ansible 192.168.115.131 -m service -a "name=httpd state=started" 

9.Cron

管理远程主机的计划任务

参数:backup #备份冲突计划任务 yes/no

        Cron_file #指定计划任务存储路径 /etc/cron.d

        Minute 0~59,*,*/2 #定义计划任务执行的分钟时间范围或模式。* 表示任何分钟。*/2 表示每两分钟。

        Hour 0~23,*,*/2

        Day 1-31 #定义计划任务执行的小时时间范围或模式

        Mouth 1-12 #定义计划任务执行的月份

        Weekly 0-7(0和7都是周日) #定义计划任务执行的星期几

        Job #执行的任务 ,依托于state=present(创建计划任务)|abset(删除计划任务)

        State present #创建

        Absent #删除

        Name #描述信息

        User #执行job的用户

        Special_time #指定执行的时间

                                参数:reboot #重启

                                          Annually #每年

                                         Mouthly #每月

                                        Weekly #每周

                                        Daily #每天

                                        Hourly #每小时

例:

ansible 192.168.115.131 -m cron -a "name=backup state=present minute=10 hour=15 job=whoami"

10.Yum

管理远程主机的软件包

参数:config_file #yum源的配置文件

        Disable_gpg_check #关闭gpgcheck

        Disablerepo #不启用某个源

        Enablerepo #启用某个源

        Name #安装软件的名称

        State present #安装

        Installed #安装

        Latest #安装最新版本

        Absent #删除

        Removed #删除

例:

ansible webs -m yum -a "name=ftp state=present"

11.user与group

管理远程主机的用户与组

参数:name #指定用户名

        Group #指定组名

        Groups #指定附加组(指定多个附加组用“,”隔开)

        Shell #指定登录shell

        State present #创建(默认)

        Absent #删除

        Remove #递归删除用户家目录及邮件,state=absent

        Password #指定用户密码(md5加密的密码)

例:创建用户并设置密码

生成密码 openssl passwd -1 “123.com” #-1参数指定使用MD5算法进行加密,执行这个命令后,OpenSSL会生成一个加密后的密码字符串

创建用户

ansible web1 -m user -a ‘name=zhangsan password=”$1 $vxbi/Hln$fWtGSrrIXD21kPPXxxlLa/”’

12.Synchronize

管理远程主机数据同步,调用rsync

参数:archive #归档

        Checksum #数据验证,默认关闭

        Compress #是否压缩,默认开启

        Copy_links #复制连接文件,默认关闭

        Delete #删除不存在的文件,默认是no

        Src #源文件

        Dest #目标路径

        Dest_port #目标端口,默认22

        Mode push #推送,文件上传

        Pill #拉取,文件下载

13.setup

查看远程主机信息

参数:filter #指定要查看的内容

例:ansible servers -m setup #返回远程主机的所有信息

14.get_url

使远程主机下载文件(http、https、ftp),类似于wget

参数:url #指定下载路径

        Dest #指定下载位置

        Url_username #指定登录用户名

        Url_password #指定用户密码

例:

ansible 192.168.115.135 -m get_url -a “url=http://192.168.115.131/t2 dest=/opt”

15.Unarchive

解压缩

参数:copy #从ansible服务复制文件到远程主机,默认yes,设置为no,需要使用src指定远程主机中包的存在位置

        Src #指定远程主机软件包位置

        Dest #解压后的软件存储位置

        Mode #解压后的文件权限

例:

ansible all -m unarchive -a 'copy=no src=/mnt/etc.tar.gz dest=/mnt mode=777’

16.Archive

归档压缩

参数:path #打包目录名称

        Dest #生成打包文件名称

        Format #打包格式

        Owner #指定文件属主

        Mode #指定文件权限

例:

ansible all -m archive -a 'path=/etc dest=/mnt/etc.tar.gz format=gz owner=devops mode=777'

17.Template

Template模板使用jinjia2语言进行配置,模板文件的后缀名为.j2

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/598722.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

「解析」Windows 如何优雅使用 Terminal

所谓工欲善其事必先利其器&#xff0c;对于开发人员 Linux可能是首选&#xff0c;但是在家学习的时候&#xff0c;我还是更喜欢使用 Windows系统&#xff0c;首先是稳定&#xff0c;其次是习惯了。当然了&#xff0c;我还有一台专门安装 Linux系统的小主机用于学习Linux使用&am…

从技术角度分析:HTTP 和 HTTPS 有何不同

网络安全问题正变得日益重要&#xff0c;而 HTTP 与 HTTPS 对用户数据的保护十分关键。本文将深入探讨这两种协议的特点、工作原理&#xff0c;以及保证数据安全的 HTTPS 为何变得至关重要。 认识 HTTP 与 HTTPS HTTP 的工作原理 HTTP&#xff0c;全称超文本传输协议&#xf…

2024年我国网络安全发展形势展望

2023年&#xff0c;我国网络安全政策法规陆续出台&#xff0c;网络安全与数据安全产业发展势头强劲&#xff0c;网络安全形势整体向好。展望2024年&#xff0c;世界各国在网络空间中的竞争将变得愈发激烈&#xff0c;我国网络安全领域的法律法规将不断完善&#xff0c;数据安全…

Hive 源码

hive 编译 issue Failed to execute goal com.github.os72:protoc-jar-maven-plugin:3.5.1.1:run (default) on project hive-standalone-metastore: Error resolving artifact: com.google.protobuf:protoc:2.5.0: The following artifacts could not be resolved: com.goog…

test coverate-03-测试覆盖率 EMMA 一款免费的Java代码覆盖工具 emma 和 jacoco 对比

拓展阅读 test 系统学习-04-test converate 测试覆盖率 jacoco 原理介绍 test 系统学习-05-test jacoco 测试覆盖率与 idea 插件 test 系统学习-06-test jacoco EMMA&#xff1a;一款免费的Java代码覆盖工具 免费的代码覆盖&#xff1a;一项基本自由&#xff1f; 直到最近…

h2-use the recovery tool [90030-200]

use the recovery tool [90030-200] 背景 使用flowable-ui版本为6.7.1使用默认的H2数据库&#xff0c;在使用此版本之前使用的是7.0.0版本&#xff0c;也就是使用两个版本&#xff0c;启动后一个版本时启动不了&#xff0c;控制台报错&#xff1a;如下 org.h2.jdbc.JdbcSQLN…

超好玩的烧脑当当狸智能五子棋,锻炼孩子的超级大脑

数码时代&#xff0c;儿童沉迷于电子设备和网络游戏已经成为了常态 作为家长&#xff0c;我们都希望能够找到一种&#xff0c;既有趣又益于孩子成长发展的娱乐方式 ✨「当当狸智能五子棋」&#xff0c;儿童智力成长的好帮手学玩一体锻炼儿童思维 不仅是一种新型休闲娱乐的方…

支付系统的层级结构与设计原则

支付系统是现代商业活动中的关键组件&#xff0c;它不仅需要处理各种复杂的金融交易&#xff0c;还要确保交易的安全性和便捷性。为了满足这些需求&#xff0c;支付系统通常采用分层的架构设计&#xff0c;每一层都有其特定的功能和责任。本文将探讨构建一个有效的支付系统时需…

Linux第4步_安装VMwareTools

安装Ubuntu操作系统后&#xff0c;就可以安装VMwareTools了&#xff0c;目的是实现“电脑和虚拟机之间互相复制粘贴文件”。 1、双击桌面图标“VMware Workstation Pro”&#xff0c;然后点击下图中的“开机”&#xff0c;打开虚拟机电源。 2、双击下图中的用户名“zgq” 3、…

【算法】数据结构题单练习(寒假正在更新中)

1. 最小距离和&#xff08;树的重心&#xff09; 题目&#xff1a; http://oj.daimayuan.top/course/7/problem/529 #include<bits/stdc.h> using namespace std;typedef long long ll;const int N 2e55; const int inf 0x3f3f3f3f;int n; int pre[N]; int dist[N]; …

ARCGIS PRO SDK Geoprocessing

调用原型&#xff1a;Dim gpResult AS IGPResult await Geoprocessing.ExecuteToolAsync(调用工具名称, GPValue数组, environment, null, null, executeFlags) 一、调用工具名称&#xff1a;地理处理工具名称。如面转线&#xff1a;management.PolygonToLine&#xff0c;而非…

吉林大学19、21级计算机学院《计算机网络》期末真题试题

一、21级&#xff08;考后回忆&#xff09; 一、不定项选择&#xff08;一共10个选择题&#xff0c;一个两分&#xff0c;选全得满分&#xff09; 不定项&#xff1a;可以选择1~4个 考点有&#xff1a; ①协议、服务 ②码分多路复用通过接受码片序列&#xff0c;求哪个站点发送…

H5 - - - - - 获取图片exif相关信息

1. EXIF是什么 【可交换图像文件格式】&#xff1a;&#xff08;英语&#xff1a;Exchangeable image file format&#xff0c;官方简称Exif&#xff09;,是专门为数码相机的照片设定的&#xff0c;可以记录数码照片的属性信息和拍摄数据。 2. EXIF 相关标识 { ApertureValu…

代码随想录算法训练营第二十四天 | 回溯算法

理论基础 代码随想录原文 什么是回溯法 回溯也可以叫做回溯搜索法&#xff0c;它是一种搜索的方式。 回溯是递归的副产品&#xff0c;只要有递归就会有回溯。 回溯法的效率 虽然回溯法很难&#xff0c;不好理解&#xff0c;但是回溯法并不是什么高效的算法。因为回溯的本…

python CSV库的基本使用

一、简介 CSV文件和TXT文件一样&#xff0c;一种纯文本文件。CSV翻译过来就是 “逗号分割的值” 的首字母缩写。 逗号分割的值意思就是用逗号把不同的值进行分割。 1.CSV文件文件的第一行相当于Excel表格的列名。 2.CSV文件可以通过记事本打开&#xff0c;也可以通过Excel软件…

了解 nextTick

一. 什么是 nextTick 简单的说&#xff0c;nextTick 方法是在 Vue.js 中常见的一种异步更新 DOM 的机制。它的原理是利用 JavaScript 的事件循环机制以及浏览器的渲染流程来实现延迟执行 DOM 更新操作。 它的出现主要是为了解决 Vue 的异步更新导致的 DOM 更新后的操作问题。…

SCA面面观 | 企业该如何选择组件检测工具?

一般来说&#xff0c;一个软件应用程序可以被分解成若干部分&#xff0c;为软件程序解耦&#xff0c;以减少整个应用程序的复杂性&#xff0c;这些部分就是软件组件。以一种标准化的方式相互作用&#xff0c;使得组件可以像机器的“零部件”一样被换入或换出&#xff0c;因组件…

dplayer播放hls格式视频并自动开始播放

监控视频流为hls格式&#xff0c;需要打开或刷新页面自动开始播放&#xff0c;需要安装dplayer和hls.js插件&#xff0c;插件直接npm装就行&#xff0c;上代码 import DPlayer from dplayer import Hls from hls.js //jquery是用来注册点击事件&#xff0c;实现自动开始播放 i…

一个不容忽视的警告WARNING:pip install --upgrade pip

2024年第一篇文章记录下一个很重要的知识点&#xff1a;pip提示升级时&#xff0c;尽量升级。 pip升级的好处&#xff1a; 1、安装速度加快&#xff0c;寻找依赖包的速度更快。 2、解决部分包安装失败&#xff0c;安装不上&#xff0c;不兼容的问题。 所以&#xff0c;如果…

【OpenCV】在MacOS上使用OpenCvSharp

前言 OpenCV是一个基于Apache2.0许可&#xff08;开源&#xff09;发行的跨平台计算机视觉和机器学习软件库&#xff0c;它具有C&#xff0c;Python&#xff0c;Java和MATLAB接口&#xff0c;并支持Windows&#xff0c;Linux&#xff0c;Android和Mac OS。OpenCvSharp是一个Op…