关键词:
自动化运维系列之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常用的一些核心模块:
- command模块
Ansible管理工具使用-m来指定使用模块,默认使用command模块,即不指定-m选项时会默认使用command模块来执行管理任务。
# 例如:
# ansible webserver -m command -a ‘date‘
# ansible mysql -a ‘date‘ #不指定-m 选项时,默认使用command模块
- 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表示移除
- 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‘ #再次查看用户列表
- 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模... 查看详情