ansible常用模块介绍

1.ansible运行模块的两种方式

Ad-Hoc

#利用ansible命令直接完成管理,主要用于临时命令使用场景

playbook

#ansible脚本呢,主要用于大型项目场景,需要前期的规划,类似shell脚本


2.如何查看模块帮助

Ad-Hoc执行方式中如何获得帮助

ansible-doc

#显示模块帮助的指令

格式:

ansible-doc [参数] [模块...]

常用参数:

-l      #列出可用模块

-s     #显示指定模块的playbook片段


3.ansible命令的常用执行参数

ansible  清单  -m  模块  -a  模块参数

常用参数:

#--version                     ##显示版本
#-m module                     ##指定模块,默认为command模块
#-v                            ##详细过程 -vv -vvv更详细过程
#--list                        ##显示主机列表,也可以用--list-hosts
#-k                            ##提示输入ssh连接密码,默认key认证
#-C                            ##预执行检测
#-T                            ##执行命令的超时时间,默认10s
#-u                            ##指定远程执行的用户
#-b                            ##执行sudo切换身份操作
#-become-user=USERNAME         ##指定sudo的用户
#-K                            ##提示输入sudo密码

ansible all -m ping -v

#显示详细信息

ansible all -m ping -vv

#更详细

ansible all -m ping -vvv

#最详细

vim ansible.cfg


4.command模块的使用方法

ansible的基本颜色代表

绿色                    #执行成功但未对主机做任何改变

黄色                    #执行成功并对远程主机做改变

红色                    #执行失败

并不是完全绝对

commond

功能:在远程主机执行命令,此模块为默认模块

不能指定远程主机运行的环境

常用参数:

chdir                 ##执行命令前先进入到指定目录
cmd                   ##运行命令指定
creates               ##如果文件存在将不运行
removes               ##如果文件存在在将运行
free_form             ##在远程主机中执行的命令,此参数不需要加

Linux中很多通配符在command模块中不支持

不支持通配符*

cmd参数已经不需要加,比如cmd=pwd


5.shell模块的使用方法

和command功能类似

常用参数:

chdir                  ##执行命令前先进入到指定目录
cmd                    ##运行命令指定
creates                ##如果文件存在将不运行
removes                ##如果文件存在在将运行
free_form              ##在远程主机中执行的命令,此参数不需要加
executable             ##指定执行环境,默认为sh

支持通配符


6. script模块使用方法

功能:在ansible主控机中写好的脚本在受控主机中运行


7.copy模块的使用

功能:从ansible主机复制文件到受控主机

常用参数:

src                        ##源文件
dest                       ##目的地文件
owner                      ##指定目的地文件所有人
group                      ##指定目的地文件所有组
mode                       ##指定目的地文件权限
backup=yes                 ##当受控主机中存在文件时备份原文件
content                    ##指定文本内容直接在受控主机中生成文件


8.fetch模块的使用方法 

功能:

从受控主机把文件复制到ansible主机,但不支持目录

常用参数:

src                 ##受控主机的源文件
dest                ##本机目录
flat                ##基本名称功能

生成以被控主机ip为名字的文件

只想要文件本身:


9.file模块的使用方法

功能:设置文件或目录的属性

常用参数:

path                   ##指定文件名称
state                  ##指定操作状态
            #touch                  建立
            #absent                 删除
            #directory              递归
            #link                   建立软链接
            #hard                   建立硬链接
mode                   ##设定权限
owner                  ##设定文件用户
group                  ##设定文件组
src                    ##源文件
dest                   ##目标文件
recurse=yes            ##递归更改


10.压缩及解压模块

archive压缩

作用:压缩

常用参数:

path                 ##打包目录名称
dest                 ##声称打包文件名称
format               ##打包格式
owner                ##指定文件所属人
mode                 ##指定文件权限

unarchive解压

copy                 ##默认为yes 从ansible主机复制文件到受控主机
                     ##设定为no 从受控主机中寻找src源文件
remote_src           ##功能同copy且相反
                     ##设定为yes 表示包在受控主机
                     ##设定为no表示包在ansible主机
src                  ##包路径,可以使ansible主机也可以使受控主机
dest                 ##受控主机目录
mode                 ##加压后文件权限 <copy=yes>

copy=no时mode设定不生效,必须copy=yes,必须从主控机解压文件到被控机

 


11.hostname模块

管理主机名称 


12.定时任务设定模块

cron

作用:计划任务

常用参数:

minute                    ##分钟
hour                      ##小时
day                       ##天
month                     ##月
weekday                   ##周
name                      ##任务名称
job                       ##任务脚本或命令
disabled                  ##yes 禁用计划任务
                          ##no 启动计划任务
state                     ##absent 删除计划任务


13.软件仓库配置模块

yum_repository

作用:配置系统软件仓库源文件

常用参数:

name                         ##指定仓库名称
baseurl                      ##指定源路径
description                  ##指定仓库描述
file                         ##指定仓库文件名称
enabled                      ##仓库是否启用
gpgcheck                     ##仓库是否检测gpgkey
state                        ##默认值present 建立
                             #absent 为删除

ansible all -m yum_repository -a 'name=AppStream file=yqmbaseurl=http://192.168.123.10/westos/AppStream gpgcheck=no description="AppStream" enabled=yes state=present' 

ansible all -m yum_repository -a 'name=BaseOS file=yqm baseurl=http://192.168.123.10/westos/BaseOS gpgcheck=no description="BaseOS" enabled=yes state=present'


14.利用dnf模块管理软件 

作用:管理系统中的dnf仓库及管理软件

常用参数:

name                         ##指定包
state                        ##指定动作
                             #present 安装
                             #latest 更新
                             #absent 删除
list                         ##列出指定信息
                             # httpd
                             # installed
                             # all
                             # available
disable_gpg_check            #禁用gpgkey检测
enablerepo                   ##指定安装包来源
disablerepo                  ##禁用安装包来源

从qq官网下载qq安装包

cp /root/Downloads/linuxqq_3.1.2-13107_x86_64.rpm /var/www/html


15.service服务管理模块

service

作用:管理系统服务状态

常用参数:

name                      ##指定服务名称
state                     ##指定对服务的动作
                          #started
                          #stoped
                          #restarted
                          #reloaded
enabled                   ##设定服务开机是否启动
                          #yes开启启动
                          #no开机不启动


16.火墙控制模块firewalld

常用参数:

zone                   ##火墙的域
service                ##服务名称
permanent              ##永久生效
state
         enabled       ##允许
         disabled      ##拒绝
immediate              ##立即生效

 


17.利用user模块管理用户

作用:

user模块可以帮助我们管理远程主机上的用户,比如创建用户、修改用户、删除用户、为用户创建密钥等操作

常用参数:

name                     ##必须参数,用于指定要操作的用户名称。
group                    ##指定用户所在的基本组。
gourps                   ##指定用户所在的附加组。
append                   ##指定添加附加组默认值为no
shell                    ##指定用户的默认 shell。
uid                      ##指定用户的 uid 号。
comment                  ##指定用户的注释信息。
state                    ##用于指定用户是否存在于远程主机
                   #present 建立
                   #absent 删除
remove                   ##当删除用户是删除用户家目录,默认值为no
password                 ##此参数用于指定用户的密码。但密码为明文,
                         ##可以用openssl passwd -6 '密码'生成加密字符
generate_ssh_key         ##生成sshkey

指定密码:

playbook方式实现:

vim user.yml


18.利用group模块管理组

group

作用:

帮助我们管理远程主机上的组

常用参数:

name                    ##用于指定要操作的组名称。
state                   ##用于指定组的状态
                   #present   建立
                   #absent    删除
gid                     ##用于指定组的gid

 


19.文件关键行替换

lineinfile

path                      ##指定要操作的文件。
line                      ##指定文本内容。 "|+" 表示格式化输入
regexp                    ##使用正则表达式匹配对应的行当替换文本时
                          ##如果有多行文本都能被匹配
                          ##则只有最后面被匹配到的那行文本才会被替换
                          ##当删除文本时,如果有多行文本都能被匹配
                          ##这么这些行都会被删除。
state                     ##当想要删除对应的文本时需要将state参数的值设置为absent
                          #state的默认值为present。
backrefs                  ##当内容无匹配规则时不对文件做任何更改,默认值为no
                          ##向后引用regexp变量信息
insertafter               ##借助insertafter参数可以将文本插入到“指定的行”之后
                          ##insertafter参数的值可以设置为EOF或者正则表达式
insertbefore              ##借助insertbefore参数可以将文本插入到“指定的行”之前
                          #insertbefore参数的值可以设置为BOF或者正则表达式
backup                    ##是否在修改文件之前对文件进行备份  默认值为no
create                    ##当要操作的文件并不存在时,是否创建对应的文件


20.replace替换文件中的关键字

常用参数:

可以根据我们制定的正则表达式替换文件中的字符串,文件中所有被匹配到的字符串都会被替换

常用参数:

path                       ##指定要操作的文件
regexp                     ##指定一个正则表达式
                           #文件中与正则匹配的字符串将会被替换
replace                    ##指定最终要替换成的字符串
backup                     ##是否在修改文件之前对文件进行备份,最好设置为yes


21.利用setup采集被控主机的变量信息 

作用:

setup模块用于收集远程主机的一些基本信息

常用参数

filter

##用于进行条件过滤,如果设置,仅返回匹配过滤条件的信息


22.利用debug显示指定信息

作用:

调试模块,用于在调试中输出信息,类似于echo

常用参数:

msg                   ##调试输出的消息
var                   ##将某个任务执行的输出作为变量传递给debug模块
                      ##debug会直接将其打印输出
verbosity             ##debug的级别(默认是0级,全部显示)

通常用于排错

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值