ansible常用模块的用法

模块文件
ping 模块 相对简单,没有参数
ansible 192.168.56.200 -m ping

command 模块
ansible websrvs -m command -a ‘chdir=/etc/ cat centos-release‘
使用command时不支持*管道的使用$也不支持

shell 模块
ansible websrvs -m shell -a "echo 123456 | passwd --stdin yunlong"
ansible websrvs -m shell -a ‘echo $HOSTNAME‘ #注意此处为单引号
[[email protected] ~]#ansible websrvs -m shell -a "chdir=/data echo welcome to china > haha.log; cat haha.log"
192.168.56.200 | CHANGED | rc=0 >>
welcome to china

ansible websrvs -m shell -a "sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config; cat /etc/selinux/config"

ansible websrvs -m shell -a ‘rm -rf /data/*‘ #删除目录下所有文件
scripts模块
实现将本机的脚本在被控端执行
如在本机新建一个脚本vim /data/hello.sh,内容为hostname
chmod +x /data/hello.sh
ansible websrvs -m script -a ‘/data/hello.sh‘

copy 模块:从主控端复制文件到远程主机
如在远程主机新建一个yum源然后再删除该yum源
ansible websrvs -m copy -a ‘content="[test]\nbaseurl=file:///misc/cd\ngpgcheck=0" dest=/etc/yum.repos.d/test.repo‘
ansible websrvs -m shell -a ‘rm /etc/yum.repos.d/test.repo‘

fetch模块:从远程主机提取文件至主控端,于copy相反,目录可先tar
ansible websrvs -m shell -a ‘tar jcvf /root/data.tar.bz2 /data/‘ #将被控端主机打包,注意j选项适用于bz2格式,J适用于xz格式,z适用于gz
ansible websrvs -m fetch -a ‘src=/root/data.tar.bz2 dest=/data‘ #将被控端打包压缩好的文件提取至主控端/data下

file模块,设置文件属性(src为远程主机内的文件,path为被控端的文件)
ansible websrvs -m file -a ‘path=/data/haha.log owner=yunlong mode=000‘
设置软连接
ansible websrvs -m file -a ‘src=/data/haha.log name=/data/haha.log.link state=link‘
ansible websrvs -m shell -a ‘ls -l /data‘ #查看生成的软连接
删除软连接
ansible websrvs -m file -a ‘src=/data/haha.log name=/data/haha.log.link state=absent‘
硬链接将state=hard即可
新建文件夹
ansible websrvs -m file -a ‘path=/data/dir1 state=directory‘ #新建文件夹
ansible websrvs -m shell -a ‘ls -l /data‘查看新建文件夹
新建空文件
ansible websrvs -m file -a ‘path=/data/dir1/hao.txt state=touch‘
ansible websrvs -m shell -a ‘ls -l /data/dir1/‘ #查看新建文件
删除文件或者文件夹
ansible websrvs -m file -a ‘path=/data/dir1/hao.txt state=absent‘

hostname模块
ansible websrvs -m hostname -a ‘name=haha.localdomain‘ #修改主机名为haha.localdomain
ansible websrvs -m shell -a ‘hostname‘ #查看修改是否生效,如果是centos6,相应的主机名存放路径/etc/sysconfig/network下也作了相应修改,centos7中主机名存放路径为/etc/hostname,建议主机名在相应的/etc/hosts下手动添加相应主机名

计划任务cron模块
时间同步在主控端centos7中
检查是否安装rpm -qi chrony
打开vim /etc/chrony.conf

Please consider joining the pool (http://www.pool.ntp.org/join.html).

server 172.22.0.1 iburst    #第一步设置本地服务器为主控端同步服务器
server ntp.aliyun.com iburst
server ntp1.aliyun.com iburst

# Allow NTP client access from local network.
allow 192.168.56.0/24    #第二步在主控端设置允许哪些机器同步自己

# Serve time even if not synchronized to a time source.
local stratum 10   #第三步即使第一步中同步失败,自身也可作为时间同步对第二部中的机器提供时间同步服务
 systemctl status chronyd      #第四步修改完后查看chronyd 服务状态
 systemctl start chronyd       #第四步修改完后启动chronyd 服务
 systemctl enable chronyd    #第四步修改完后设置chronyd 服务为开机启动
 systemctl restart chronyd    #修改配置文件后重启
     ss -ntlu                              #启动成功后查看端口号为323 ,123
在被控端(也是192.168.56.0网段)输入如在centos6中ntpdate 主控端IP地址 即可同步

回忆在本机设置计划任务crontab -e   回车即可进入编辑
 ansible websrvs -m cron -a ‘name=synctime minute=*/5 job="/usr/sbin/ntpdate 主控端IP &> /dev/null"‘     #创建计划任务name为计划任务名称,minute为每5分钟同步,job为计划任务执行内容
 ansible websrvs -m shell -a ‘crontab -l‘    #列出计划任务列表
 ansible websrvs -m cron -a ‘name=synctime minute=*/5 job="/usr/sbin/ntpdate 主控端IP &> /dev/null" disabled=true‘     #禁用计划任务
 ansible websrvs -m cron -a ‘name=synctime minute=*/5 job="/usr/sbin/ntpdate 主控端IP &> /dev/null" disabled=false‘     #启用计划任务

 ansible websrvss -m cron -a ‘name=synctime minute=*/5 job="/usr/sbin/ntpdate 主控端IP &> /dev/null" state=absent‘    #删除计划任务
yum包管理模块
 注意需要提前在被控端进行yum源配置,保证能在本机通过yum源安装
 ansible websrvs -m yum -a ‘name=httpd‘    #指定安装包名称,默认安装,通过ansible-doc yum查看使用帮助
 ansible websrvs -m yum -a ‘rpm -qi httpd‘    #查询安装情况
在本端通过rpm -qi 安装包,查询安装情况

 ansible websrvs -m yum -a ‘name=httpd state=absent‘    #卸载httpd服务
 ansible websrvs -m yum -a ‘name=bind‘   #安装bindDNS服务
 ansible websrvs -a ‘ss -ntlu |grep 53‘     #安装后查看是否有了53端口下面重启服务才会有

 service模块
     ansible websrvs -m service -a ‘name=named state=started enabled=true‘    #bind服务名为named,开机启动
 ansible websrvs -a ‘ss -ntlu | grep 53‘    #此时端口53出现了
 ansible websrvs -m service -a ‘name=named state=stopped‘    #停止服务,端口号就没了

ansible websrvs -a ‘service named status‘ #查看此时服务已关闭,设置了默认模块为shell

原文地址:https://blog.51cto.com/14231434/2385808

时间: 2024-10-19 04:41:18

ansible常用模块的用法的相关文章

ansible常用模块详解

ansible常用模块详解: ansible <host-pattern> [-m module_name] [-a args] [options] #ansible命令格式  指定主机组或ip地址  指定调用模块   传递给模块的参数   ansible-doc -l #列出可用模块 ansible-doc -s model_name #查看指定模块详细用法 command:ansible默认模块,对指定主机执行命令,不能理解特殊字符 例:ansible web -a 'date' #对we

Ansible 常用模块详解(3)

title: Ansible 常用模块详解(3) date: 2018-12-01 15:22:11 tags: Ansible categories: Ansible copyright: true --- Ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系统配置.批量程序部署.批量运行命令等功能,ansible是基于模块工作的,本身没有批量部署的能力,真正具有批量部署的是an

二:Ansible常用模块

二:Ansible常用模块 一:Ansible命令模块 1.1 command # 默认模块, 执行命令 [[email protected] ~]# ansible web_group -a "hostname" 1.2 shell # 如果需要一些管道操作,则使用shell [[email protected] ~]# ansible web_group -m shell -a "ps -ef|grep nginx" -f 50 注意:command不识别管道符

ansible常用模块介绍

ansible查看模块用法 例子 查看shell 模块使用方法 [[email protected] opt]# ansible-doc -s shell 注: -i 指定配置文件  tomcatserver自己定义的工作组  -m 指定模块 file模块 file模块包含如下选项: force:需要在两种情况下强制创建软链接,一种是源文件不存在但之后会建立的情况下:另一种是目标软链接已存在,需要先取消之前的软链,然后创建新的软链,有两个选项:yes|no group:定义文件/目录的属组 mo

Ansible常用模块介绍及使用

ansible常用命令解析: 查看当前 ansible 都支持哪些模块: ansible-doc -l 查看某一模块可以使用的参数:ansible-doc -s copy (eg:copy模块) ansible用法: ansible 主机名 -m 模块名 -a 模块参数 -m:模块的名字,如果执行单一的命令不用加-m,默认走command -a: 模块参数,如果模块是command,-a 后面跟的就是命令参数 -i : 指定hosts文件位置      默认:/etc/ansible/hosts

ansible使用一(ansible的安装及ansible常用模块的使用)

1.ansible概述        Ansible是一款基于Python开发的自动化运维工具,它不需要安装客户端,使用SSH进行通信,同时可支持系统账号认证或秘钥认证,也支持windows客户端. Ansible主要组成部分: (1)ANSIBLE PLAYBOOKS:任务剧本(任务集),编排定义Ansible任务集的配置文件,由Ansible顺序依次执行,通常是JSON格式的YML文件: (2)INVENTORY:Ansible管理主机的清单: (3)MODULES:Ansible执行命令的

Ansible常用模块基本操作

Ansible是一个系列文章,我会尽量以通俗易懂.诙谐幽默的总结方式给大家呈现这些枯燥的知识点,让学习变的有趣一些. 前言 对于任何一个框架,一个应用,为了更便于推广,便于使用,便于商业化,都会顺便提供很多常用的模块,这样让大家也很容易使用起来.Ansible也是一样的,所以这些常用的模块,就好比基本功,基本招式一样,我们需要掌握这些基本功,掌握这些基本招式.这篇文章,就对这些常用的模块进行一个比较全面的总结. ping模块 ping是测试远程节点的SSH连接是否就绪的常用模块,但是它并不像Li

2. ansible常用模块

Ansible通过模块的方式来完成一些远程的管理工作. ansible-doc -l查看所有模块 ansible-doc -s module来查看某个模块的参数, ansible-doc help module来查看该模块更详细的信息. 模块命令 -i 设备列表路径,可以指定一些动态路径 -f 并发任务数 -private-key 私钥路径 -m 模块名称 -M 模块夹的路径 -a 参数 -k 登陆密码 -K sudo密码 -t 输出结果保存路径 -B 后台运行超时时间 -P 调查后台程序时间

Ansible常用模块及API

Ansible安装 安装EPEL作为安装Ansible的yum源(CentOS6.4): rpm -Uvh http://ftp.linux.ncsu.edu/pub/epel/6/i386/epel-release-6-8.noarch.rpm 安装Ansible: yum install ansible -y 配置文件: 路径:/etc/ansible/hosts配置说明:webservers为组名,下面的ip或域名则是属于该组的主机. [webservers] 192.168.1.111