自动化运维系列之ansible命令应用基础(模块的应用)持续更新中···(代码片段)

author author     2022-12-22     140

关键词:

自动化运维系列之Ansible命令应用基础(模块的应用)

模块简介

Ansible可以使用命令行方式进行自动化管理,基本语法如下:

ansible <host-pattern> [-m module_name] [-a args]

<host-pattern> 对哪些主机生效

[-m module_name] 需要使用的模块

[-a args] 模块特有的参数,这里在使用时需加单引号哦!

Ansible的命令行管理工具都是由一系列模块、参数所支持的,可以在命令行后加上-h或--help获取帮助。如使用ansible-doc工具可以通过ansible-doc -h查看其帮助信息。

技术分享图片

ansible自带了很多模块,能够下发执行Ansible的各种管理任务。下面介绍下Ansible常用的一些核心模块:

  1. command模块

Ansible管理工具使用-m来指定使用模块,默认使用command模块,即不指定-m选项时会默认使用command模块来执行管理任务。

# 例如:
# ansible webserver -m command -a ‘date‘
# ansible mysql -a ‘date‘     #不指定-m 选项时,默认使用command模块

技术分享图片

  1. cron模块

Ansible中的cron模块用于定义任务计划。其中有两种状态(state):present表示添加(省略时默认使用添加);absent表示移除。

  • 可以先使用-h获取帮助信息查看cron模块的帮助

ansible-doc -s cron #查看cron模块的帮助信息

技术分享图片

  • 使用cron模块在webserver组的主机上创建任务计划
# ansible webserver -m cron -a ‘minute="*/10" job="/bin/echo hello" name="test cron job"‘     #添加一个计划性任务

技术分享图片

  • 这里可以查看下我们添加的任务
# ansible webserver -a ‘crontab -l‘    #查看计划性任务

技术分享图片

  • 移除计划性任务
# ansible webserver -m cron -a ‘minute="*/10" job="/bin/echo hello" name="test cron job" state=absent‘    #absent表示移除

技术分享图片

  1. user模块

Ansible中的user模块用于创建新用户和更改、删除已存在的用户。其中name选项用来指明创建的用户名称。

user模块是请求的是useradd, userdel, usermod三个指令

  • 创建用户

ansible webserver -m user -a ‘name="zyc"‘ #创建用户zyc

ansible webserver -m command -a ‘tail /etc/passwd‘ #查看webserver主机上的用户列表

技术分享图片

  • 删除用户

ansible webserver -m user -a ‘name="zyc" state=absent‘ #删除用户

ansible webserver -m command -a ‘tail /etc/passwd‘ #再次查看用户列表

技术分享图片

  1. group模块

Ansible中的group模块用于对用户组进行管理。

  • 创建mysql组,将mysql用户添加到mysql组。

ansible-doc -s group

ansible mysql -m group -a ‘name=mysql gid=306 system=yes‘ #创建mysql组 将mysql用户添加进去

ansible mysql -a ‘tail /etc/group‘

ansible mysql -m user -a ‘name=mysql uid=306 system=yes group=mysql‘

ansible mysql -a ‘tail /etc/passwd‘

ansible mysql -a ‘id mysql‘

技术分享图片

技术分享图片

5.copy模块

Ansible中的copy模块用于实现文件复制和批量下发文件。其中src用来定义本地源文件路径,使用dest定义被管理主机文件路径,使用content是通过指定信息内容来生成目标文件。

ansible-doc -s copy

ansible webserver -m copy -a ‘src=/etc/fstab dest=/opt/fstab.back owner=root mode=640‘
#(属主root 权限640)

ansible webserver -a ‘ls -l /opt‘

ansible webserver -a ‘cat /opt/fstab.back‘

ansible webserver -m copy -a ‘content="hello heihei!"dest=/opt/fstab.back‘ #将hello heihei!写入/opt/fstab.back

ansible webserver -a ‘cat /opt/fstab.back‘

技术分享图片

6.file模块

Ansible中file模块用来设置文件属性。(path指定文件路径,src指定源文件路径,name或者dest替换创建文件的符号链接)

ansible-doc -s file

ansible webserver -m user -a ‘name=mysql system=yes‘

ansible webserver -m group -a ‘name=mysql system=yes‘

ansible webserver -m file -a ‘owner=mysql group=mysql mode=644 path=/opt/fstab.back‘ #修改文件的属主属组权限等

ansible webserver -m file -a ‘path=/opt/fstab.link src=/opt/fstab.back state=link‘ #设置/opt/fstab.link为/opt/fstab.back的链接文件

ansible webserver -m file -a "path=/opt/fstab.back state=absent" #删除一个文件

ansible webserver -m file -a "path=/opt/school state=touch" #创建一个文件

7.ping模块

Ansible中ping模块用来测试指定主机的连通性

ansible all -m ping #测试所有主机的连通性

技术分享图片

8.shell模块

Ansible中的shell模块可在被管理主机上运行命令,并支持像管道符号等功能的复杂命令。

  • 创建用户后使用免交互模式给用户设置密码。

ansible mysql -m user -a ‘name=zyc‘ #创建用户

ansible mysql -m shell -a ‘echo 123123|passwd --stdin zyc‘ #给用户设置密码

技术分享图片

9.yum模块

Ansible中的yum模块负责在被管理主机上安装与卸载软件包,但是需要提前在每个节点配置自己的yum仓库。

name指定需要安装的软件包,需要带上软件包的版本号,否则默认安装最新版

state指定安装软件包的状态,present、latest表示安装;absent表示卸载

ansible webserver -m yum -a ‘name=http‘ #安装http软件

ansible webserver -m yum -a ‘name=http state=absent‘ #卸载http软件

技术分享图片

技术分享图片

10.service模块

Ansible中使用service模块来控制管理服务的运行状态。

enabled表示是否开机自启动,取值为true和false

name定义服务名称

state指定服务状态,取值为:started(开启)、stoped(停止)、restarted(重启)

# ansible webserver -m yum -a ‘name=http‘   #安装http软件
# ansible webserver -m service -a ‘enabled=true name=httpd state=started‘
# ansible webserver -a ‘systemctl status httpd.service‘

技术分享图片

11.script模块

Ansible中的script模块可以将本地脚本复制到被管理主机上运行。(注意:脚本路径需要使用相对路径)

# ansible-doc -s script
# vim abc.sh    #在本地编写一个abc的脚本
    #!/bin/bash
    echo "hello ansible from script"> /opt/script.txt
# chmod +x abc.sh    #赋予执行权限
# ansible webserver -m script -a ‘abc.sh‘  #将脚本复制到被管理主机上运行
# ansible webserver -a ‘cat /opt/script.txt‘    #查看脚本信息

技术分享图片

12.setup模块

Ansible中的setup模块主要收集、查看被管理主机的facts(facts是Ansible采集被管理主机设备信息的一个功能)。

# ansible webserver -m setup  #收集信息

技术分享图片

自动化运维之ansible应用基础模块(超详细)(代码片段)

Ansible是一种基于模块进行工作的框架结构。批量部署能力就是由Ansible所运行的模块实现的。简而言之Ansible是基于“模块”完成各种“任务”的。Ansible常用的核心模块模块的基本语法如下ansible[主机][-m模块][-aargs]//命令格式#ansib... 查看详情

自动化运维三贱客之ansible的安装和命令应用基础(代码片段)

ansible简介:ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。ansible基本框架:ansible是基于模块工作... 查看详情

ansible基础应用

简介ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。ansible是基于模块工作的,本身没有批量部署的... 查看详情

系统运维系列之greenplumvacuum清理删除数据命令(代码片段)

1PostgreSQL清理表膨胀之vacuumPostgreSQL的表膨胀清理就需要依赖vacuum,vacuum的主要任务就是清理表和索引中不需要的数据(deadtuples),为新加入的数据清理出来空间。 vacuum完成清理工作后,那些空间并没有真正... 查看详情

系统运维系列之linux系统下常用查找命令整理(代码片段)

1前言网上关于linux命令大多写的很细很全,但是真正使用起来需要根据自己的场景进行拼接,本博客建立在实际场景下,在实际问题中使用linux查找命令。2grep命令使用场景:查找日志中的关键词,并且限定时... 查看详情

系统运维系列之异常抛出后代码执行问题(java应用)

1问题描述thrownewExcpetion()之后,程序并没有向下继续运行,抛出异常后直接跳出,后面的功能不再执行。//抛出异常:Exceptioninthread"main"java.lang.NumberFormatException//不会执行后面的输出语句publicstaticvoidmain(String[]args) S... 查看详情

系统运维系列之list实现深拷贝(java应用)

浅拷贝调用方法:遍历循环复制:List<String>destList=newArrayList<String>(srcList.size());for(Stringp:srcList)destList.add(p);使用list.addAll()方法:List<String>destList=newAr 查看详情

系统运维系列之socket和serversocket的简单介绍(java应用)

Socket类代表一个客户端套接字,即任何时候连接到一个远程服务器应用时构建所需的socket。现在,要实现一个服务器应用,需要不同的做法。服务器需随时待命,因为不知道客户端什么时候会发来请求,此时&#... 查看详情

自动化运维工具ansible-基础介绍

自动化运维工具Ansible-基础介绍1、简介ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。ansible是基于... 查看详情

系统运维系列之堆栈理解(java应用)(代码片段)

1概述java虚拟机内存分为:堆(heap)、栈(stack)、方法区(methodarea)等,整体来说:堆:new出来的数组或者对象;栈:存储局部变量;方法区:代码区;寄存器࿱ 查看详情

系统运维系列之mysql部分学习整理3

1存储过程语法结构:举例:无参CREATEPROCEDUREsql()SELECTVERSION();调用:CALLsql();有参IN:DELIMITER//(更改执行符号的命令)参数与语句中的字段不要重复,不要重复!如果p_id改成id,则会全部删除࿰... 查看详情

系统运维系列之mysql部分学习整理4

1存储引擎查看数据库表创建命令:SHOWCREATETABLEtab1;支持的存储引擎:MylSAM:快速存储;InnoDB:带有事务回滚机制;MemorycsvArchive修改存储引擎的方式:通过修改MySQL配置文件实现default-storage-engine=engine... 查看详情

系统运维系列之mysql部分学习整理1

1前言本部分对于MySQL数据库工作机制及其语法做一个整理,用于之后重点内容的查询和交流。2包含内容数据库工作机制、语法基础、重要内容整理、语句优化、效率提升等。3MySQL的字段约束3.1其中AUTO_INCREMENT必须和PRIMARYKEY一... 查看详情

自动化运维—ansible工具的使用(代码片段)

Ansible一、概述1.1特点1.2优点二、服务搭建2.1准备工作2.2ansible端设置三、ansible命令行模块3.1command模块概述命令使用常用参数3.2shell模块概述命令3.3cron模块概述常用参数命令3.4user模块概述常用参数命令3.5group模块概述命令3.6copy模... 查看详情

自动化运维之ansible-安装部署与基础命令篇(代码片段)

...署程序、配置系统等功能。二、安装部署Ansible服务Ansible自动化运维环境由控制主机与被管理主机组成,由于Ansible是基于SSH协议进行通信的,所以控制主机安装Ansible软件后不需要重启或允许任何程序,被管理主机也不需要安装... 查看详情

自动化运维之ansible的安装部署与命令模块(代码片段)

Ansible简介Ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。ansible是基于模块工作的,本身没有批量... 查看详情

自动化运维—ansible工具的使用(代码片段)

Ansible一、概述1.1特点1.2优点二、服务搭建2.1准备工作2.2ansible端设置三、ansible命令行模块3.1command模块概述命令使用常用参数3.2shell模块概述命令3.3cron模块概述常用参数命令3.4user模块概述常用参数命令3.5group模块概述命令3.6copy模... 查看详情

自动化运维—ansible工具的使用(代码片段)

Ansible一、概述1.1特点1.2优点二、服务搭建2.1准备工作2.2ansible端设置三、ansible命令行模块3.1command模块概述命令使用常用参数3.2shell模块概述命令3.3cron模块概述常用参数命令3.4user模块概述常用参数命令3.5group模块概述命令3.6copy模... 查看详情