Ansible学习01-常用模块

1.command命令模块

默认模块
    [email protected]:/data/sh# ansible docker -a "hostname"
         192.168.1.124 | success | rc=0 >>
           centos-mysql01
          172.17.0.2 | success | rc=0 >>
            17466f2471ee

script模块

yum安装软件模块

[email protected]:/data/sh#ansible docker -m yum -a "name=httpd state=installed"
    name        #指定要安装的软件包名称
    state       #指定使用yum的方法
       installed,present   #安装软件包
       removed,absent      #移除软件包
       latest              #安装最新软件包 

copy文件拷贝模块

推送文件模块
 [email protected]:~#  ansible docker -m copy -a "src=/etc/passwd dest=/tmp/test.txt"
在推送覆盖远程端文件前,对被控制端已有文件进行备份,按照时间信息备份
[email protected]:~# ansible dcoker -m copy -a "src=/etc/passwd dest=/tmp/test.txt backup=yes"
直接向被控制端文件内写入数据信息,并且会覆盖被控制端文件内原有数据信息
[email protected]:~#  ansible docker -m copy -a "content=‘hz7726‘ dest=/tmp/hanye"
模块内嵌命令
 src             #推送数据的源文件信息
 dest            #推送数据的目标路径
 backup          #对推送传输过去的文件,进行备份
 content         #直接批量在被管理端文件中添加内容
 group           #将本地文件推送到被控制端,指定文件属组信息
 owner           #将本地文件推送到被控制端,指定文件属主信息
 mode            #将本地文件推送到被控制端,指定文件权限信息

file文件配置模块

[email protected]:~# ansible docker -m file -a "path=/data/sh state=directory"
[email protected]:~# ansible docker -m file -a "path=/data/sh state=touch mode=0644 owner=root group=root"
[email protected]:~# ansible docker -m file -a "src=/data/sh path=/data/hanye state=link"
模块内嵌命令
path            #指定远程主机目录或文件信息
recurse         #递归授权
state
directory   #在创建目录
touch       #在被控制端创建文件
link        #link或hard表示创建链接文件
absent      #表示删除文件或目录
mode        #设置文件或目录权限
owner       #设置文件或目录属主信息
group       #设置文件或目录属组信息

service服务模块

[email protected]:~# ansible docker -m service -a "name=httpd state=started enabled=yes"

name        # 定义要启动服务的名称
state       # 指定服务状态
     started     #启动服务
     stopped     #停止服务
     restarted   #重启服务
     reloaded    #重载服务
 enabled         #开机自启

group组模块

[email protected]:~# ansible docker -m group -a "name=erp  gid=1008"

 name            #指定创建的组名
 gid             #指定组的gid
 state   #用户组状态
     absent      #移除被控制端主机的组
     present     #创建被控制端主机的组

user模块

#创建用户指定uid和gid,不创建家目录也不允许登陆
   [email protected]:~# ansible docker -m user -a "name=hanye  uid=1008 group=1008 shell=/sbin/nologin create_home=no"
#创建用户指定uid和gid,指定家目录和密码
    [email protected]:~# ansible docker -m user -a   "name=erp  group=erp uid=1008 password="$6$O9KDopiuPgvkrb4z$ee7/lfljSe79zQLIvDROsFM23hAJRRvVc.JoBWPGW3WbeHBQVG.IFcg1r8RppAIZ8naxckFGvOX2CIiwY6hEw0" home=/home/erp shell=/bin/bash"
        #password: 明文密码为:666666

uid             #指定用户的uid
group           #指定用户组名称
groups          #指定附加组名称
password        #给用户添加密码 #此处的密码是经过md5加密的密文
shell           #指定用户登录shell
create_home     #是否创建家目录
home       #指定家目录

cron模块

 [email protected]:~# ansible docker  -m cron -a " name=‘crontab test‘ minute=5 hour=1 job=‘sh /data/sh/init_os.sh‘ "
     等同于:#crontab test
                    5 1 * * *  sh /data/sh/init_os.sh

    minute参数:此参数用于设置计划任务中分钟设定位的值
    hour参数:此参数用于设置计划任务中小时设定位的值
    day参数:此参数用于设置计划任务中日设定位的值
    month参数:此参数用于设置计划任务中月设定位的值
    weekday参数:此参数用于设置计划任务中周几设定位的值
    user参数:此参数用于设置当前计划任务属于哪个用户
    job参数:此参数用于指定计划的任务中需要实际执行的命令或者脚本
    name参数:此参数用于设置计划任务的名称
    state参数:当计划任务有名称时,我们可以根据名称修改或删除对应的任务,当删除计划任务时,需要将 state 的值设置为 absent。

mount模块

[email protected]:~#  ansible docker -m mount -a "src=192.168.1.124:/data path=/data  fstype=nfs opts=defaults state=present"
     src: 源地址目录
     path: 挂在地址
     opts:默认属性
     state
    present     # 开机挂载,仅将挂载配置写入/etc/fstab
    mounted     # 挂载设备,并将配置写入/etc/fstab
    unmounted   # 卸载设备,不会清除/etc/fstab写入的配置
    absent      # 卸载设备,会清理/etc/fstab写入的配置

synchronize模块

 #复制目录
 [[email protected] ~]# ansible dcoker  -m synchronize -a ‘src=/tmp/hanye  dest=/data/soft/ compress=yes‘
     #远端拉去
     [[email protected] tmp]# ansible docker -m synchronize -a ‘mode=pull  src=/root/hanye dest=/data/soft/ compress=yes‘
         archive # 是否采用归档模式同步,即以源文件相同属性同步到目标地址
checksum # 是否效验
compress # 开启压缩,默认为开启
copy_links # 同步的时候是否复制连接
delete # 删除源中没有而目标存在的文件(即以推送方为主)
dest= # 目标地址
dest_port # 目标接受的端口,ansible配置文件中的 ansible_ssh_port 变量优先级高于该 dest_port 变量
dirs # 以非递归的方式传输目录
existing_only # Skip creating new files on receiver.
group # Preserve group
links # Copy symlinks as symlinks.
mode # 模式,rsync 同步的方式 PUSH\PULL,默认都是推送push。如果你在使用拉取pull功能的时候,可以参考如下来实现mode=pull 更改推送模式为拉取模式
recursive # 是否递归 yes/no
rsync_opts # 使用rsync 的参数
rsync_path # 服务的路径,指定 rsync 命令来在远程服务器上运行。这个参考rsync命令的--rsync-path参数,--rsync-path=PATH # 指定远程服务器上的rsync命令所在路径信息
rsync_timeout # 指定 rsync 操作的 IP 超时时间,和rsync命令的 --timeout 参数效果一样.
set_remote_user # put [email protected] for the remote paths. If you have a custom ssh config to define the remote user for
src= # 源,同步的数据源
times #
--exclude=.Git 忽略同步.git结尾的文件

原文地址:http://blog.51cto.com/9025736/2329599

时间: 2024-11-06 03:38:43

Ansible学习01-常用模块的相关文章

Python学习笔记-常用模块

1.python模块 如果你退出 Python 解释器并重新进入,你做的任何定义(变量和方法)都会丢失.因此,如果你想要编写一些更大的程序,为准备解释器输入使用一个文本编辑器会更好,并以那个文件替代作为输入执行.这就是传说中的 脚本.随着你的程序变得越来越长,你可能想要将它分割成几个更易于维护的文件.你也可能想在不同的程序中使用顺手的函数,而不是把代码在它们之间中拷来拷去. 为了满足这些需要,Python 提供了一个方法可以从文件中获取定义,在脚本或者解释器的一个交互式实例中使用.这样的文件被称

Ansible安装及常用模块

配置文件:/etc/ansible/ansible.cfg 主机列表:/etc/ansible/hosts  安装anslibe  wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo yum -y install ansible 配置文件先备份 修改配置文件hosts添加主机组 (分组) 如果要远程连接需要配置用户名和密码或密钥(两种方式都可以) 用户密码: [webtest] 192.168

Ansible指令和常用模块使用

这里文章记录一下ansible的指令选项和常用的模块使用 ansible指令选项 -m:要执行的模块,默认为command -a:模块的参数 -u:ssh连接的用户名,默认用root,ansible.cfg中可以配置 -k:提示输入ssh登录密码,当使用密码验证的时候用 -s:sudo运行 -U:sudo到哪个用户,默认为root -K:提示输入sudo密码,当不是NOPASSWD模式时使用 -C:只是测试一下会改变什么内容,不会真正去执行 -c:连接类型(default=smart) -f:f

Python学习 :常用模块(一)

常用模块(一) 一.时间(time)模块 时间戳 (Timestamp):时间戳表示的是从1970年1月1日00:00:00为计时起点,到当前的时间长度 import time print(help(time)) 查看time模块的官方说明 time.time() # 返回当前时间的时间戳 print(time.time()) >>> 1540191340.5649574 time.clock() # 计算CPU执行的时间 print(time.clock()) >>>

Python学习 :常用模块(二)

常用模块(二) 四.os模块 os模块是与操作系统交互的一个接口,用于对操作系统进行调用 os.getcwd() # 提供当前工作目录 os.chdir() # 改变当前工作目录 os.curdir() # 返回当前目录('.') os.pardir() # 获取当前目录的父目录字符串名('..') os.makedirs() # 生成多层递归目录('April\\Week1\\Day3') os.removedirs() # 从最里层往外删除空的文件夹,若文件夹为空,将会删除:若文件夹不为空,

Python学习 :常用模块(三)

常用模块(三) 七.logging模块 日志中包含的信息应有正常的程序访问日志,还可能有错误.警告等信息输出 python的 logging 模块提供了标准的日志接口,你可以通过它存储各种格式的日志,logging 的日志可以分为 debug() , info() , warning() , error() , critical() 5个级别 Eg.简单的日志记录 import logging logging.debug('debug message') logging.info('info m

Python 学习5 常用模块

可以参考这个博客的地址http://www.cnblogs.com/alex3714/articles/5161349.html 本文为转载 地址http://www.cnblogs.com/alex3714/articles/5161349.html 本节大纲: 模块介绍 time &datetime模块 random os sys shutil json & picle shelve xml处理 yaml处理 configparser hashlib subprocess loggin

python 学习_day28_常用模块补充

一.摘要算法--hashlib模块 1.算法介绍 Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等. 什么是摘要算法呢?摘要算法又称哈希算法.散列算法.它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示).摘要算法就是通过摘要函数f()对任意长度的数据data计算出固定长度的摘要digest,目的是为了发现原始数据是否被人篡改过.摘要算法之所以能指出数据是否被篡改过,就是因为摘要函数是一个单向函数,计算f(data)很容易,但通过dig

python学习之-常用模块

json 和pickle 模块 json和pickle模块下都有4个功能 dumps  <---> loads  (序列化 <--->反序列化) dump <---> load (简单写法序列化<---> 简单写法反序列化) 用途:序列化模块 什么是序列化 序列化就是把内存中数据类型转换成一种可以存储到硬盘/基于网络传输的中间格式 反序列化就是将中间格式转成相对应的数据类型 PS:不同平台的数据类型是无法识别的,如果数据要夸平台交互,被其他平台识别,那就要把