1、 文件组装模块-assemble

assemble主要是将多份配置文件组装为一份配置文件。

参数

必填

默认

选项

说明

Backup

No

Yes/no

是否创建备份文件,使用时间戳

Delimiter

配置文件内容之间的分隔符

Dest

目的文件用来连接所有的源文件

Follow

No

Yes/no

表示文件系统的链接,如果存在,应该follow

Group

文件所属组,相当于chown

Mode

文件属性,0644,记住保留前面的0

Owner

文件所属用户

Regexp

组装的时候是否匹配相关的文件进行组合

Remote_src

True

True/False

False表示src文件在本机上,True表示src在远程主机上

Src

已经存在的目录文件

1.1 将本机上的配置文件组装发送到远程主机

[root@ansibleserver kel]# ansible pythonserver -m assemble -a "src=/root/kel/ dest=/tmp/kel.conf remote_src=False"

SSH password:

192.168.1.60 | success >> {

"changed": true,

"dest": "/tmp/kel.conf",

"gid": 0,

"group": "root",

"md5sum": "23245453347840c2aa288bcc274bc298",

"mode": "0600",

"owner": "root",

"size": 32,

"src": "/root/.ansible/tmp/ansible-tmp-1453144282.9-4482221307096/src",

"state": "file",

"uid": 0

}

在本机目录/root/kel的文件进行组装,发送到远程配置文件/tmp/kel.conf中,在此注意参数remote_src为False表示组装本机的配置文件

如果在本机目录中不存在文件,那么将会显示python代码和乱码

1.2 使用分隔符

[root@ansibleserver kel]# ansible pythonserver -m assemble -a "src=/root/kel/ dest=/tmp/kel.conf remote_src=False delimiter='####'"

SSH password:

192.168.1.60 | success >> {

"changed": true,

"dest": "/tmp/kel.conf",

"gid": 0,

"group": "root",

"md5sum": "b46dcc49d69688a6be5bfd5b82737c0c",

"mode": "0600",

"owner": "root",

"size": 42,

"src": "/root/.ansible/tmp/ansible-tmp-1453144492.01-279709420329993/src",

"state": "file",

"uid": 0

}

使用分隔符进行分割每个配置文件的内容,分隔符参数为delimiter

2、 文件复制模块-copy

copy模块是将本机中的文件复制到远程主机当中,fetch模块是将远程主机中的内容复制到本机中,如果在复制文件的过程当中需要使用变量,那么就使用template模块

参数

必填

默认

选项

说明

Backup

No

Yes/no

是否创建备份文件,使用时间戳

Content

当使用content替代src的时候,可以把文档中内容设定为特定值

Dest

文件复制的目的地

Follow

No

Yes/no

表示文件系统的链接,如果存在,应该follow

Group

文件所属组,相当于chown

Mode

文件属性,0644,记住保留前面的0

Owner

文件所属用户

Directory_mode

设定目录的权限,只有在新建的时候才会使用,不会影响已经存在的目录

Remote_src

True

True/False

False表示src文件在本机上,True表示src在远程主机上

Src

已经存在的目录文件

Force

No

Yes/no

是否覆盖

Validate

复制前是否需要检验复制的目的地

2.1 设定权限进行拷贝

[root@ansibleserver kel]# ansible pythonserver -m copy -a "src=/root/kel/1 dest=/tmp/kel owner=root group=root mode=0777"

SSH password:

192.168.1.60 | success >> {

"changed": true,

"dest": "/tmp/kel",

"gid": 0,

"group": "root",

"md5sum": "799e373c68e4b72dd2eb7ed715cfced9",

"mode": "0777",

"owner": "root",

"size": 4,

"src": "/root/.ansible/tmp/ansible-tmp-1453145233.73-276909183600356/source",

"state": "file",

"uid": 0

}

设定了文件的权限,设定mode为0777,用户和组均为root

2.2 拷贝的时候备份

[root@ansibleserver kel]# ansible pythonserver -m copy -a "src=/root/kel/1 dest=/tmp/kel owner=root group=root backup=yes"

SSH password:

192.168.1.60 | success >> {

"backup_file": "/tmp/kel.2016-01-18@14:34~",

"changed": true,

"dest": "/tmp/kel",

"gid": 0,

"group": "root",

"md5sum": "a8cb3ba3ab8a8840e019c6b21521c483",

"mode": "0777",

"owner": "root",

"size": 8,

"src": "/root/.ansible/tmp/ansible-tmp-1453145701.59-117060156554446/source",

"state": "file",

"uid": 0

}

备份的时候,只有在文件发生了变化的时候,那么会在远程主机上进行备份,而不是在本机上进行备份源文件,备份的是远程主机上被修改的文件

2.3 拷贝文件之后进行验证

[root@ansibleserver kel]# ansible pythonserver -m copy -a "src=/etc/sudoers dest=/tmp/2 validate='visudo -cf %s'"

SSH password:

192.168.1.60 | success >> {

"changed": true,

"dest": "/tmp/2",

"gid": 0,

"group": "root",

"md5sum": "4093e52552d97099d003c645f15f9372",

"mode": "0644",

"owner": "root",

"size": 3797,

"src": "/root/.ansible/tmp/ansible-tmp-1453146150.33-246902811238377/source",

"state": "file",

"uid": 0

}

拷贝之后进行验证

3、 文件拉取模块-fetch

文件拉取模块主要是将远程主机中的文件拷贝到本机中,和copy模块的作用刚刚相反,并且在保存的时候使用hostname来进行保存,当文件不存在的时候,会出现错误,除非设置了选项fail_on_missing为yes

参数

必填

默认值

选项

说明

Dest

Yes

用来存放文件的目录,例如存放目录为backup,源文件名称为/etc/profile在主机pythonserver中,那么保存为/backup/pythonserver/etc/profile

Fail_on_missing

No

No

Yes/no

当源文件不存在的时候,标识为失败

Flat

No

允许覆盖默认行为从hostname/path到/file的,如果dest以/结尾,它将使用源文件的基础名称

Src

Yes

在远程拉取的文件,并且必须是一个file,不能是目录

Validate_checksum

No

Yes

Yes/no

当文件fetch之后进行md5检查

3.1 fetch一个文件进行保存

[root@ansibleserver ~]# ansible pythonserver -m fetch -a "src=/root/123 dest=/root"

SSH password:

192.168.1.60 | success >> {

"changed": true,

"dest": "/root/192.168.1.60/root/123",

"md5sum": "31be5a34915d52fe0a433d9278e99cac",

"remote_md5sum": "31be5a34915d52fe0a433d9278e99cac"

}

src表示为远程主机上需要传送的文件路径,dest表示为本机上的路径,在传送过来的文件,是按照IP地址进行分类,然后路径是源文件的路径

在拉取文件的时候,必须拉取的是文件,不能拉取文件夹

3.2 指定路径目录进行保存

[root@ansibleserver ~]# ansible pythonserver -m fetch -a "src=/root/Ssh.py dest=/root/kel/ flat=yes"

SSH password:

192.168.1.60 | success >> {

"changed": true,

"dest": "/root/kel/Ssh.py",

"md5sum": "63f8a200d1d52d41f6258b41d7f8432c",

"remote_md5sum": "63f8a200d1d52d41f6258b41d7f8432c"

}

在使用参数为flat的时候,如果dest的后缀名为/,那么就会保存在目录中,然后直接保存为文件名;当dest后缀不为/的时候,那么就会直接保存为kel的文件,如上例所示。

主要是在于dest是否已/结尾,从而来区分这是个目录还是路径。

4、 文件管理模块-file

主要用来设置文件、链接、目录的属性,或者移除文件、链接、目录,很多其他的模块也会包含这种作用,例如copy,assemble和template

参数

必填

默认

选项

说明

Follow

No

No

Yes/no

这个标识说明这是系统链接文件,如果存在,应该遵循

Force

No

No

Yes/no

强制创建链接在两种情况下:源文件不存在(过会会存在);目标存在但是是文件(创建链接文件替代)

Group

No

文件所属用户组

Mode

No

文件所属权限

Owner

No

文件所属用户

Path

Yes

要控制文件的路径

Recurse

No

No

Yes/no

当文件为目录时,是否进行递归设置权限

Src

No

文件链接路径,只有状态为link的时候,才会设置,可以是绝对相对不存在的路径

State

No

File

File/link

Directory

Hard/touch

Absent

如果是目录不存在,那么会创建目录;如果是文件不存在,那么不会创建文件;如果是link,那么软链接会被创建或者修改;如果是absent,那么目录下的所有文件都会被删除,如果是touch,会创建不存在的目录和文件

4.1 设置文件属性

[root@ansibleserver ~]# ansible pythonserver -m file -a "path=/root/123 owner=kel group=kel mode=0644"

SSH password:

192.168.1.60 | success >> {

"changed": true,

"gid": 500,

"group": "kel",

"mode": "0644",

"owner": "kel",

"path": "/root/123",

"size": 294,

"state": "file",

"uid": 500

}

文件路径为path,表示文件路径,设定所属用户和所属用户组,权限为0644

[root@ansibleserver ~]# ansible pythonserver -m file -a "path=/tmp/kel/ owner=kel group=kel mode=0644 recurse=yes"

SSH password:

192.168.1.60 | success >> {

"changed": true,

"gid": 500,

"group": "kel",

"mode": "0644",

"owner": "kel",

"path": "/tmp/kel/",

"size": 4096,

"state": "directory",

"uid": 500

}

文件路径为path,使用文件夹进行递归修改权限,使用的参数为recurse表示为递归

4.2 创建目录

[root@ansibleserver ~]# ansible pythonserver -m file -a "path=/tmp/kel state=directory mode=0755"

SSH password:

192.168.1.60 | success >> {

"changed": true,

"gid": 0,

"group": "root",

"mode": "0755",

"owner": "root",

"path": "/tmp/kel",

"size": 4096,

"state": "directory",

"uid": 0

}

创建目录,使用的参数主要是state为directory

4.3 修改权限

[root@ansibleserver ~]# ansible pythonserver -m file -a "path=/tmp/kel mode=0444"

SSH password:

192.168.1.60 | success >> {

"changed": true,

"gid": 0,

"group": "root",

"mode": "0444",

"owner": "root",

"path": "/tmp/kel",

"size": 4096,

"state": "directory",

"uid": 0

}

直接使用mode来进行修改权限

4.4 创建软连接

[root@ansibleserver tmp]# ansible pythonserver -m file -a "src=/tmp/1 dest=/tmp/2 owner=kel state=link"

SSH password:

192.168.1.60 | success >> {

"changed": true,

"dest": "/tmp/2",

"gid": 0,

"group": "root",

"mode": "0777",

"owner": "kel",

"size": 6,

"src": "/tmp/1",

"state": "link",

"uid": 500

}

src表示已经存在的文件,dest表示创建的软连接的文件名,最后的state状态为link

5、 ini文件管理模块-ini_file

Ini_file模块主要是用来设置ini文件的格式的文件。

添加、删除、修改单独的ini格式的文件,其中主要是用来修改部分的配置信息,而不是template或者是assemble,添加失去的section。

参数

必填

默认

选择

说明

Backup

No

No

Yes/no

在修改之前进行备份

Dest

Yes

Ini类型文件的路径,如果不存在会创建

Follow

No

No

Yes/no

标识是否文件系统链接,如果存在,那么将遵循

Group

No

组名

Mode

No

权限

Option

No

如果需要修改一个值,那么可以设置,如果添加删除一个整段,那么可以忽略

Others

No

文件模块所使用的参数可以在这里使用

Owner

No

用户名

Section

Yes

在ini文件中的section名称,如果状态为present并且设置了一个值,那么会添加

State

No

Present

Absent

Present

新增/删除

Value

No

这个值和option相关联,如果删除那么会忽略

5.1 添加其中的节的值

[root@ansibleserver tmp]# ansible pythonserver -m ini_file -a "dest=/tmp/kel section=kel option=kel value=kel mode=0600 backup=yes"

SSH password:

192.168.1.60 | success >> {

"changed": true,

"dest": "/tmp/kel",

"gid": 0,

"group": "root",

"mode": "0600",

"msg": "OK",

"owner": "root",

"size": 29,

"state": "file",

"uid": 0

}

表示在ini文件格式中添加一个值,路径为/tmp/kel,节名称为kel,字符为kel值为kel,在修改之前进行备份,ini文件格式如下:

[section]

key=value

ansible文件模块使用的更多相关文章

  1. ansible 文件模块,很实用

    摘自: http://blog.csdn.net/kellyseeme/article/details/50545521

  2. ansible常用模块用法

    ansible常用模块用法 2015-07-21 10:25 24458人阅读 评论(1) 收藏 举报  分类: Linux(44)   ansible 版权声明:本文为博主原创文章,未经博主允许不得 ...

  3. Linux之ansible 常用模块

    目的 代码发布系统 代码发布:把本地的代码通过某些方式弄到线上,可以供别人访问 部署 前戏 ansible 批量在远程主机上执行命令 puppet ruby ansible saltstack pyt ...

  4. Ansible常用模块介绍及使用(week5_day1_part2)--技术流ken

    Ansible模块 在上一篇博客<Ansible基础认识及安装使用详解(一)--技术流ken>中以及简单的介绍了一下ansible的模块.ansible是基于模块工作的,所以我们必须掌握几 ...

  5. Ansible常用模块命令

    Ansible常用模块命令 一.安装ansible yum install epel-release yum install ansible 二.配置文件配置 vi /etc/ansible/ansi ...

  6. ansible 常用模块的使用

    安装 yum -y install ansible 配置文件/etc/ansible/hosts 模块介绍与使用 ping模块 [root@node1 config]# ansible k8s -m ...

  7. ansible 文件和目录操作

    ansible file 模块参考: refer to https://docs.ansible.com/ansible/latest/modules/file_module.html?highlig ...

  8. Ansible 常见模块介绍

    目录 Ansible 常见模块介绍 ping 模块 command 模块 cron 模块 user 模块 group 模块 copy 模块 file 模块 service 模块 shell 模块 sc ...

  9. Ansible 常用模块(一)

    一.Ansible简介 Ansible是新出现的自动化运维工具,基于python开发,集合了众多运维工具(puppet(ruby).cfengine.chef.func.fabric.)的优点,实现了 ...

随机推荐

  1. Spring 事务配置的几种方式

    参考:http://www.blogjava.net/robbie/archive/2009/04/05/264003.html http://www.cnblogs.com/appleat/arch ...

  2. linux read和write函数

    原文出处:http://blog.chinaunix.net/space.php?uid=20558494&do=blog&id=2803003read函数是Linux下不带缓存的文件 ...

  3. Android 获取最近应用的缩略图

    最近有项需求是获取应用的缩略,用于在动画时显示.因此就对此块知识简要了解了一下. 在android中获取视频文件的缩略图有三种方法: 1.从媒体库中查询 新视频增加后需要SDCard重新扫描才能给新增 ...

  4. 监听Activity进入后台(最小化),并根据时间判断是否超时,此解决办法可用于超时重登陆

    通过重写一个继承自Activity的基类中的onUserLeaveHint()方法,当用户按Home键等操作使程序进入后台时即开始计时,当用户使程序恢复为前台显示时执行onResume()方法,在其中 ...

  5. flex 4 Filters

    <s:RectangularDropShadow id="dropShadow" blurX="10" blurY="10" alph ...

  6. 利用SOLR搭建企业搜索平台 之——solr的查询语法

      1. 首先假设我的数据里fields有:name, tel, address 预设的搜寻是name这个字段, 如果要搜寻的数据刚好就是 name 这个字段,就不需要指定搜寻字段名称. 2. 查询规 ...

  7. allegro下快捷键设置[转贴]

    zz : http://yuandi6.blog.163.com/blog/static/207265185201210245435397/ 修改变量文件,设置自定义快捷键. Allegro可以通过修 ...

  8. C#图片切割、图片压缩、缩略图生成

    C#图片切割.图片压缩.缩略图生成的实现代码 /// 图片切割函数  /// </summary>  /// <param name="sourceFile"&g ...

  9. Order to Cash Process

    order to cash process steps can be listed as below · Enter the Sales Order · Book the Sales Order · ...

  10. Python 数据类型转换

    Python提供的基本数据类型主要有:布尔类型.整型.浮点型.字符串.列表.元组.集合.字典.日期等等 函数                      描述     type(x)  x的数据类型   ...