接上篇,还是一些基础模块的使用,这里主要介绍的是系统模块的使用。

下面例子都进行过相关的实践,从而可以直接进行使用相关的命令。

3、用户模块的使用

用户模块主要用来管理用户账号和用户的属性(对远程主机用户进行批量管理)。

用户模块依赖的指令为useradd,userdel,usermod

参数

必填

默认值

选项

说明

Append

No

Yes/no

如果没有指定group,append设定为yes,那么会添加到用户同名组;append设定为no,那么会添加到user组。如果指定了group,那么都会添加在指定的group组

Comment

用户的备注信息

Force

No

Yes/no

当状态为absent的时候,相当于userdel -force

generate_ssh_key

No

Yes/no

是否生成秘钥

Group

可选的,设定用户的主组

Groups

用逗号分隔的组,当groups设定为空的时候,那么会移除除了主组的其他所有组

Home

可选的,设定为用户的home目录

Login_class

可选的,设定用户的登录类 FreeBSD, OpenBSD and NetBSD systems.

Name

用户创建,移除,修改

Move_home

No

Yes/no

如果使用了选项home=设置为yes,那么会将用户家目录移到不存在的home目录中

Non_unique

No

Yes/no

可选的,当使用-u选项的时候,将用户的uid设置为non_unique

Password

设定用户的密码

Remove

No

Yes/no

当使用状态为state=absent的时候,差不多和userdel --remove(删除所有信息)

Shell

设定用户的shell

Ssh_key_bits

2048

设定秘钥的位数

Ssh_key_comments

¥HOSTHOME

Ssh key备注信息

Ssh_key_file

.sha/id_rsa

秘钥的文件名

ssh_key_passphrase

Ssh秘钥的密码

Ssh_key_type

Rsa

Ssh秘钥的类型

State

Present

Present

Absent

新增删除

System

No

Yes/no

创建为系统账号,不会改变已经存在的用户

Uid

设定为用户的uid

Update_password

Always

Always

On_create

Always当用户密码不同,会修改,是否需要修改密码

3.1 添加用户

[root@ansibleserver ~]# ansible pythonserver -m user -a "name=kelly group=kelly uid=555 comment='kelly' state=present"

SSH password:

192.168.1.60 | success >> {

"changed": true,

"comment": "kelly",

"createhome": true,

"group": 501,

"home": "/home/kelly",

"name": "kelly",

"shell": "/bin/bash",

"state": "present",

"system": false,

"uid": 555

}

添加用户,指定用户名name,指定用户主组kelly,设定用户uid为555 ,设定备注信息

3.2 添加用户使用append

[root@ansibleserver ~]# ansible pythonserver -m user -a "name=kelly shell=/bin/bash groups=kelly,kel append=yes"

SSH password:

192.168.1.60 | success >> {

"changed": true,

"comment": "",

"createhome": true,

"group": 100,

"groups": "kelly,kel",

"home": "/home/kelly",

"name": "kelly",

"shell": "/bin/bash",

"state": "present",

"system": false,

"uid": 501

}

添加用户,将用户添加在组kelly和kel中,指定shell为/bin/bash,然后将用户添加组user中

3.3 删除用户

[root@ansibleserver ~]# ansible pythonserver -m user -a "name=kelly state=absent remove=yes"

SSH password:

192.168.1.60 | success >> {

"changed": true,

"force": false,

"name": "kelly",

"remove": true,

"state": "absent"

}

将用户强制删除

3.4 新建用户创建sshkey

[root@ansibleserver ~]# ansible pythonserver -m user -a "name=kelly generate_ssh_key=yes ssh_key_bits=2048 ssh_key_file=.ssh/id_rsa"

SSH password:

192.168.1.60 | success >> {

"changed": true,

"comment": "",

"createhome": true,

"group": 501,

"home": "/home/kelly",

"name": "kelly",

"shell": "/bin/bash",

"ssh_fingerprint": "2048 cd:18:dc:17:3b:ac:d8:ec:95:15:39:26:01:3d:17:d6 /home/kelly/.ssh/id_rsa.pub (RSA)",

"ssh_key_file": "/home/kelly/.ssh/id_rsa",

"ssh_public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAs6vB5rR5KAkWGbCmnBFBCLTuD8W3Gu2ehGtlkS9ObCC3uANHG7l80g3tfUl9k3GTh1a+vlAq2XKIKgFSnqQwitiX7WgyL4JzoWHtt0do2JKf0Zh+i7RgR6fZpF48wpuuuZnFXs9WaaHJDhWjp8t7dMDcCI1TxDCCmeYO7bxQdnN8FsxQSQLr5L0IrVBb1avE/+oVCJ72LEmJKGBNo6XQXwC2sA3o0dXEYQwhaE/ulJrPbLbXRJcZmhhIW5Rviu1J3hNOC36+9WpzV7luaZ9QUZdhuvuN3LlXSELWVoHciiGct+6h4zih/aZnmEBCqoD//cobBsuRN6PDJRz+DxRWLw==
ansible-generated",

"state": "present",

"system": false,

"uid": 501

}

创建用户,设定sshkey等属性

4、 hostname模块使用

hostname模块主要用来修改主机的名称。

参数

必填

默认

选择

注释

Name

主机名称

4.1 修改主机名称

[root@ansibleserver ~]# ansible pythonserver -m hostname -a "name=python"

SSH password:

192.168.1.60 | success >> {

"changed": true,

"name": "python"

}

在查看的时候,主要查看文件/etc/sysconfig/network,重启之后才能生效

5、 ping模块的使用

ping模块主要是无意义的测试模块,主要用来检查ansible是否可以用的模块以及python是否配置好的,在playbook中基本不会使用,在能成功连接之后,总是返回结果pong

[root@ansibleserver ~]# ansible all -m ping

SSH password:

ansiblemoniter | success >> {

"changed": false,

"ping": "pong"

}

6、定时任务管理模块使用

主要是用来对定时任务进行调度,定时任务模块会包含一句描述信息,格式如下:

"#Ansible: <name>"

name对应的为模块传递过去的参数,主要用来给以后ansible进行操作的时候,查看相关的状态或者检查相关状态

依赖的模块为cron

参数

必填

默认

选择

说明

Backup

Yes/no

如果yes,那么在修改之后会进行备份,备份的路径在backup_file

Cron_file

如果设置了,那么在cron.d中使用此文件替代单独用户的crontab,在使用此选项的时候,必须使用user选项

Day

Hour

小时 ( 0-23, *, */2, etc )

Job

需要执行的命令,必须状态为present

Minute

分 ( 0-59, *, */2, etc )

Month

月( 1-12, *, */2, etc )

Name

任务的描述

Reboot

No

Yes/no

重启后是否需要执行

Special_time

reboot

yearly

annually

monthly

weekly

daily

hourly

特定的执行时间

State

Present

Present

Absent

启用或停用任务

User

Root

执行任务的用户

Weekday

每一周的哪天进行运行(0-6 for Sunday-Saturday, *, etc)

6.1 新增一个定时任务

[root@ansibleserver ~]# ansible pythonserver -m cron -a "name=check minute=5 job='crontab -l >>/root/123'"

SSH password:

192.168.1.60 | success >> {

"changed": true,

"jobs": [

"check"

]

}

新增一个任务,每五分钟执行一次,任务名称为check

6.2 删除定时任务

[root@ansibleserver ~]# ansible pythonserver -m cron -a "name=check state=absent"

SSH password:

192.168.1.60 | success >> {

"changed": true,

"jobs": []

}

删除刚刚新建的定时任务

6.3 新建一个cron文件

[root@ansibleserver ~]# ansible pythonserver -m cron -a "name='for test' weekday='2' minute='0' hour=12 user='root' job='cat /etc/passwd >/root/111' cron_file='test ansible'"

SSH password:

192.168.1.60 | success >> {

"changed": true,

"cron_file": "test ansible",

"jobs": [

"for test"

]

}

新增一个任务,在目录/etc/cron.d/目录中,文件名称为test ansible,用户为root

6.4 删除一个cron文件

[root@ansibleserver ~]# ansible pythonserver -m cron -a "name='for test' cron_file='test ansible' state=absent"

SSH password:

192.168.1.60 | success >> {

"changed": true,

"cron_file": "test ansible",

"jobs": []

}

删除上面新建的cron文件。

7、 setup模块

这个模块在playbook中自动被查找的,从而得到远程主机的相关信息,可以作为变量使用。

参数

必填

默认

选择

说明

Fact_path

/etc/ansible/facts.d

Fact的路径

Filter

*

过滤串

7.1 收集fact并且进行保存

ansible pythonserver -m setup --tree /tmp/facts

执行之后,会显示相关的fact,并且在/tmp/facts中会保存fact信息,如下:

[root@ansibleserver tmp]# ls -l /tmp/facts/

total 12

-rw-r--r-- 1 root root 8990 Jan 18 13:16 192.168.1.60

使用--tree选项,在分类的时候,会根据主机的名称进行分类

7.2 收集内存信息并输出

[root@ansibleserver tmp]# ansible pythonserver -m setup -a "filter=ansible_*_mb"

SSH password:

192.168.1.60 | success >> {

"ansible_facts": {

"ansible_memfree_mb": 746,

"ansible_memtotal_mb": 996,

"ansible_swapfree_mb": 2015,

"ansible_swaptotal_mb": 2015

},

"changed": false

}

使用过滤字符串,从而进行了相关的匹配,得到相关的内存信息

7.3 收集主机网卡信息

[root@ansibleserver tmp]# ansible pythonserver -m setup -a "filter=ansible_eth[02]"

SSH password:

192.168.1.60 | success >> {

"ansible_facts": {

"ansible_eth0": {

"active": true,

"device": "eth0",

"ipv4": {

"address": "192.168.1.60",

"netmask": "255.255.255.0",

"network": "192.168.1.0"

},

"ipv6": [

{

"address": "fe80::a00:27ff:fee5:e8a8",

"prefix": "64",

"scope": "link"

}

],

"macaddress": "08:00:27:e5:e8:a8",

"module": "e1000",

"mtu": 1500,

"promisc": false,

"type": "ether"

}

},

"changed": false

}

收集特定的网卡信息

ansible定时任务模块和用户组模块使用的更多相关文章

  1. Ansible安装部署以及常用模块详解

    一.  Ansible 介绍Ansible是一个配置管理系统configuration management system, python 语言是运维人员必须会的语言, ansible 是一个基于py ...

  2. ansible环境部署及常用模块总结 - 运维笔记

    一.  Ansible 介绍Ansible是一个配置管理系统configuration management system, python 语言是运维人员必须会的语言, ansible 是一个基于py ...

  3. Ansible安装部署及常用模块详解

    Ansible命令使用 Ansible语法使用ansible <pattern_goes_here> -m <module_name> -a <arguments> ...

  4. ansible学习基础知识和模块(一)

    基础知识补充: 常用自动化运维工具 Ansible:使用python来开发的,无需设置Agentless(代理),一般管理几百台.与ssh的方式也不一样,ssh是基于c/s模式(客户端+服务器)来使用 ...

  5. ansible服务模块和组模块使用

    本篇文章主要是介绍ansible服务模块和组模块的使用. 主要模块为ansible service module和ansible group moudle,下面的内容均是通过实践得到,可以直接运行相关 ...

  6. CentOS7Linux中自动化运维工具Ansible的安装,以及通过模块批量管理多台主机

    使用自动化运维工具Ansible集中化管理服务器 Ansible概述 Ansible是一款为类Unix系统开发的自由开源的配置和自动化工具.它用Python写成,类似于saltstack和Puppet ...

  7. ansible执行shell模块和command模块报错| FAILED | rc=127 >> /bin/sh: lsof: command not found和| rc=2 >> [Errno 2] No such file or directory

    命令: ansible -i hosts_20 st  -m shell -a 'service zabbix_agentd star'  -K --become ansible -i hosts_2 ...

  8. Ansible基础配置与常用模块使用

    环境介绍: Ansible服务端IP:192.168.2.215 Ansible客户端IP:192.168.2.216.192.168.2.218.192.168.2.113   一.创建Ansibl ...

  9. Ansible 开发调试 之【模块调试】

    本地调试 需要安装jinja2 库 yum -y install python-jinja2 使用官方提供的测试脚本调试 git clone git://github.com/ansible/ansi ...

随机推荐

  1. MyBatis实现SaveOrUpdate

    这篇文章主要讲如何通过xml方式实现SaveOrUpdate,但是仍然建议在Service中实现. 例子 <insert id="saveOrUpdate" > < ...

  2. eclipse安装Gradle

    第一步:下载Gradle>http://gradle.org/gradle-download 第二步:解压gradle-2.5, 配置环境变量:GRADLE_HOME path添加;%GRADL ...

  3. jstl long类型数据转换为日期格式

    一.有WEB-INF下建立一个datetag.tld <?xml version="1.0" encoding="UTF-8"?> <tagl ...

  4. C# 中间语言、CLR、CTS、CLS

    c#  中间语言.CLR.CTS.CLS IL中间语言,区分大小写 中间语言的主要特征: 1.  面向 对象和使 用接口 2. 值类型和引 用类 型之间的 显 著差异 3.  强 数据类型化 4. 使 ...

  5. ado执行sql查询出现“发送数据流时出现算术溢出”错误

    开发一个数据采集监控系统,比较变态的是有将近2000项数据.根据数据类型分多个表存储.数据库访问层采用ado.最近发现当一条sql一次性查询1700多个字段数据后就出现“发送数据流时出现算术溢出”错误 ...

  6. C# Server.MapPath()

     ./当前目录 /网站主目录../上层目录~/网站虚拟目录 如果当前的网站目录为E:\wwwroot   应用程序虚拟目录为E:\wwwroot\company 浏览的页面路径为E:\wwwroot\ ...

  7. sysfs - 用于导出内核对象(kobject)的文件系统

    sysfs - _The_ filesystem for exporting kernel objects.sysfs - 用于导出内核对象(kobject)的文件系统Patrick Mochel & ...

  8. Linux屏幕录制gif的工具及教程

    准备 要两个工具配合使用.它们可以用命令行安装,也可以用软件管理器安装. 1,byzanz     安装后有两个命令 byzanz-record   录制,既能录制 Gif 动画,又可录制 Ogv 视 ...

  9. core--线程同步

    [同步(tóng bù)synchronous;sync;synchronism;synchronization 指两个或两个以上随时间变化的量在变化过程中保持一定的相对关系.]这是百度百科对&quo ...

  10. java中进程与线程的三种实现方式

    一:进程与线程 概述:几乎任何的操作系统都支持运行多个任务,通常一个任务就是一个程序,而一个程序就是一个进程.当一个进程运行时,内部可能包括多个顺序执行流,每个顺序执行流就是一个线程. 进程:进程是指 ...