运维实操——ansible(二)管理的方式、命令运行方式及常用参数、颜色代表信息、常用模块command、shell、script、copy、fetch、file、archive、unarchive

  • Post author:
  • Post category:其他




1、ansible实现管理的方式

(1)Ad-Hoc,利用ansible命令直接完成管理,主要用于临时命令使用场景,前面已经演示。

显示模块帮助的指令


ansible-doc -l

列出所有模块


ansible-doc 名称

列出指定模块


ansible-doc -s

简要列出指定模块

在这里插入图片描述

(2)playbook,ansible脚本,主要用于大型项目场景,需要前期的规划

编写test.yaml,执行test.yaml

在这里插入图片描述



2、ansible命令运行方式及常用参数

-v显示详细信息

在这里插入图片描述

-k是指定ssh的密钥,-u指定远程执行的用户

在这里插入图片描述

预执行检测

在这里插入图片描述


--bocome

在远程主机中,执行命令时使用sudo调用


--become-user=root

,sudo调用命令时,用到的用户身份


-K

是sudo的执行密钥,



3、ansible的基本颜色代表信息

绿色,执行成功但为对远程主机做任何改变

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

红色,执行失败

在这里插入图片描述



4、ansible中的常用模块



(1)command

功能为在远程主机执行命令,此模块为默认模块,常用参数有


chdir
执行命令前先进入到指定目录

removes
存在运行

create
存在不运行

进入mnt,创建文件file1file2file3

在这里插入图片描述

成功创建

在这里插入图片描述

/mnt/file5文件存在时,运行后面的删除指令,没有执行

/mnt/file1文件存在时,运行后面的删除指令,成功运行

在这里插入图片描述

/mnt/file1文件存在时,不运行后面的指令。第一条因为/mnt/file1文件不存在,执行创建文件。第二条因为/mnt/file1文件存在,不执行删除文件。

在这里插入图片描述



(2)shell

shell和command功能类似,主要有两点不同

  • shell中支持通配符

    *

    ,command不支持通配符

    *


    如下图,command中无法删除/mnt,shell中可以删除/mnt

    在这里插入图片描述
  • shell多了

    executable

    模块

    默认使用的执行环境为sh,加入executable模块,可以指定执行环境为bash

    在这里插入图片描述



(3)script

功能为指定脚本在被控主机中运行

为了方便操作,现在只留了200为受控主机

在这里插入图片描述

使用script模块,受控机执行test.sh脚本

在这里插入图片描述



(4)copy

从ansible主机复制文件到受控主机

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

使用copy模块,从ansible主机复制test.sh文件到被控主机的/mnt/test.sh文件,拥有者为westos,权限为755

在这里插入图片描述

进入受控机,查看文件权限为755,拥有者为westos

在这里插入图片描述

修改test.sh文件,再次执行copy模块,添加backup参数,可以备份之前的同名文件

在这里插入图片描述

查看,之前的文件备份了,接受了新的文件

在这里插入图片描述

copy模块,还可以直接输入文件内容,发给受控主机的/mnt/westos文件

在这里插入图片描述

受控主机的westos文件的内容的确是hello word

在这里插入图片描述



(5)fetch

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

src 受控主机的源文件
dest 本机目录
flat 基本名称功能,单纯只要文件,不要路径的层层目录

使用fetch模块,从受控主机复制

/etc/sysconfig/network-scripts/ifcfg-ens3

文件到ansible主机的lee用户的家目录,可以看到层层的子目录也复制过来了。

在这里插入图片描述

多加flat参数,表示只要这个文件,不要层层目录

在这里插入图片描述



(6)file

受控主机的文件管理,设置文件的属性

参数 含义
path 指定文件名称
state 指定操作状态(touch建立文件、absent删除、directory建立目录、link建立软连接、hard建立硬连接)
mode 设定权限
owner 设定文件的用户
group 设定文件组
src 源文件
dest 目标文件
recurse=yes 递归更改

使用file模块,受控主机建立/mnt/westosfile文件

在这里插入图片描述

已建立westosfile文件

在这里插入图片描述

受控主机建立westosdir目录

在这里插入图片描述

已建立westosdir目录

在这里插入图片描述

设定westosfile文件的拥有者为westos

在这里插入图片描述

成功设定westosfile文件的拥有者为westos

在这里插入图片描述

设定westosdir目录的组为westos

在这里插入图片描述

成功设定westosdir目录的组为westos

在这里插入图片描述

建立层级文件westosdir/westosfile

在这里插入图片描述

设定westosdir目录的组为devops,并设定westosdir目录下的文件的组为devops

在这里插入图片描述

成功设定westosdir目录以及里面的文件的组为devops

在这里插入图片描述

用westosfile文件,创建受控主机的linuxfile软连接

在这里插入图片描述

查看软连接

在这里插入图片描述

用westosfile文件,创建受控主机的hahafile硬连接

在这里插入图片描述

查看硬连接,编号一样

在这里插入图片描述

删除受控主机的linuxfile文件

在这里插入图片描述

已成功删除受控主机的linuxfile文件

在这里插入图片描述

删除受控主机的westosdir目录

在这里插入图片描述

已成功删除受控主机的westosdir目录

在这里插入图片描述



(7)archive

压缩

常用参数 含义
path 打包目录名称
dest 声称打包文件名称
format 打包格式
owner 指定文件所属人
mode 指定文件权限

使用archive模块,受控主机把/etc打包为etc.tar.gz压缩包,格式为gz格式

在这里插入图片描述

查看etc.tar.gz压缩包

在这里插入图片描述

受控主机把/etc打包为etc.tar.bz2压缩包,格式为bz2格式,权限为755,拥有者为westos,组为devops

在这里插入图片描述

查看etc.tar.bz2,权限为755,拥有者为westos,组为devops

在这里插入图片描述



(8)unarchive

解压缩

常用参数 含义
copy 默认为yes(从ansible主机复制文件到受控主机);设定为no,从受控主机中寻找src源文件
remote_src 功能同copy且相反,设定为yes 表示包在受控主机,设定为no表示包在ansible主机
src 包路径,可以使用ansible主机也可以使用受控主机
dest 受控主机目录
mode 解压后文件权限

首先在ansible主机创建压缩包

在这里插入图片描述

使用ansible主机的压缩包(可以使用相对路径),解压到受控主机的/media下

在这里插入图片描述

解压成功

在这里插入图片描述

使用ansible主机的压缩包,解压到受控主机的/media下,解压后文件权限为700,拥有者为westos

在这里插入图片描述

查看解压后文件权限为700,拥有者为westos

在这里插入图片描述

删除ansible主机的压缩包,使用受控主机的压缩包(绝对路径),解压到受控主机的/media下,解压后文件权限为700,拥有者为devops

在这里插入图片描述

解压后目录中的文件权限为700,拥有者为devops

在这里插入图片描述



(9)hostname

作用为修改主机名称

修改受控主机的主机名称为westos_node2

在这里插入图片描述

成功修改

在这里插入图片描述

恢复受控主机的主机名称为westos_node1

在这里插入图片描述

修复成功

在这里插入图片描述

还有更多模块,在下一篇文章介绍



版权声明:本文为qq_40764171原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。