ansible的相关模块

1::ansible模块:

1):command 模块

       command 模块在远程主机执行命令,但是不支持管道,重定向等shell的特性,常见参数如下:(不支持管道,不建议使用)

  • chdir:在远程主机上运行命令前要提前进入目录
  • creates:在命令运行时创建一个文件,如果文件已经存在,则不会创建任务
  • removes:在命令运行时移除一个文件,如果文件不存在,则不会执行移除任务
  • executeble:指明运行命令shell程序

实验案例:

a:在所有主机上运行“ls ./"命令,运行前切换/home目录下,操作如下

     准备一下环境,在两台主机上分别创建crushlinux用户,否则/home下是空的查看不到效果

《1》:ansible webserver -m command -a "useradd crushlinux"   创建用户

《2》:ansible webserver -m command -a "chdir=/home ls -l"   先进入home目录下,在执行ls -l

《3》:ansible webserver -m command -a "uptime"    查看uptime的相关信息

2):shell模块

   shell模块在远程主机执行命令,相当于调用远程主机的shell进程,然后在该shell下打开一下子shell运行命令,和command模块的区别是他支持shell特性,如管道,重定向等,

 案例:

 《1》:ansible webserver -m shell -a "echo  11111 > 1.txt"  重定向到1.txt

3):raw模块(建议使用)

   最原始的方式运行命令(不依赖Python,仅通过ssh实现)

4):copy 模块

    copy模块用于复制指定主机文件到远程主机的指位置,常见参数如下

  • dest:指出复制文件的目标文件位置,使用绝对路径,如果源是目录,指目标也是目录,如果目标文件已经存在会覆盖原有内容。
  • src:指出源文件的路径,可以使用相对路劲或绝对路径,支持直接指定目录,如果源是目录测试目标也要是目录。
  • mode:指出复制时,目标文件的权限可选
  • owner:指出复制时,目标文件的属主可选
  • group:指出复制时,目标文件的属组 可选
  • content:指出复制到目标主机上的内容,不能与src一起使用,相当于复制content指明的数据到目标文件中

 特别提示:

    参数:backup=yes ==>意思是,如果目标路劲下,有与我同名但不同内容的文件时,在覆盖前,对目标文件先进性备份。

   所有被管理端节点必须安装libselinux-Python  包

《1》:yum  -y install libselinux-python

《2》:rpm -qa libselinux-python

实验案例:

   将crushlinux 组中主机的/etc/hosts 文件拷贝到/tmp下,指定权限为777更该属于主为crushlinux更改属组为root

《1》:ansible webserver -m copy -a "src=/etc/hosts dest=/tmp mode=777 owner=crushlinux group=root"

5):hostname 模块

Hostname 模块用于管理远程主机上的主机名,常用参数如下:

  《1》:ansible 192.168.100.20 -m hostname -a "name=crushlinux"  修改主机名称

(6):yum模块

   yum模块基于yum机制,对远程主机管理程序包,常见参数如下

  • name:程序包的名称,可以带上版本号,如不指定版本号默认安装为最新版本
  • state=present | latset | absent :指明对程序包执行的操作,presset 表示安装程序包,latest表示安装最新版本的程序包,absent表示卸载程序包
  • disablerepo:在用yum安装时禁用某个仓库的ID
  • enabierepo:在用yum安装时启用某个参考的ID
  • conf_file:yum运行时的配置文件而不是使用默认的配置文件
  • disable_gpg_check=yes|no:是否启用完整性校验功能

实验案例:

 注意实验前要在client端配置yum仓库

管理员只是发送yum命令道被管理端,被管理端要存在可用的yum仓库才可以成功安装

《1》:ansible webserver -m yum -a "name=bind state=present" 安装软件包

7):service 模块

  service模块为用来管理远程主机的服务的模块,常见参数如下:

  • name:被管理的服务名称
  • state=started | stoped | restarted:动作包含启动关闭或重启
  • enabled=yes|no:表示是否设置该服务开机自启动
  • runlevel:如果设定了enabled开机自启动,则要定义在哪些运行目标下自启动

实验案例:

《1》:ansible webserver -m -service -a "name=httpd state=started enabled=yes"  设置为开机自启动

 systemctl is-enbaled httpd 查看是否是开机自启动

8):user模块

  user模块用于管理远程主机上的用户账户,常见的参数如下:

  • name:必选参数  账户名称
  • state=present|absent:创建账户或者删除账号,present表示创建,absent表示删除
  • system=yes|no:是否为系统账号
  • UID:用户UID
  • group:用户的基本组
  • groups:用户的附加组
  • shell:默认使用的shell
  • home:用户的家目录
  • move_home=yes|no:如果设置的家目录已经存在,是否将已经存在的家目录进行移动
  • password:用户的密码,建议使用加密后的字符串
  • comment:用户的注释信息
  • remove=yes|no:当state=absent是,是否删除用户的家目录

 实验案例:

《1》:ansible webserver -m user -a 'name=user1 system=yes uid=502 group=root groups=sshd shell=/sbin/nologin home=/home/user1 password=user1 comment="test user"' 创建用户、

《2》:ansible webserver -m user -a "name=user1 state=absent remove=yes"删除用户

9):script 模块

     script模块能够实现远程服务器批量运行本地的shell脚本

  远程批量分布并自动部署nginx

  所有被管理端需要挂载光盘,并创建本地yum仓库文件

《1》:vim /opt/file20.sh  编写脚本

《2》:写入:

#! /bin/bash

 touch /tmp/file {1..20}.txt 

《3》:ansible webserver -m script -a "/opt/file20.sh" 执行脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BK_小小关

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值