ansible中File模块、Fetch模块、Yum模块、Pip模块、Service模块、Cron模块、User模块、Group模块

一、ansible中的File模块

  file模块是对文件进行的操作

file模块的一些参数
group    #文件的属组

mode    #文件权限

owner    #文件属主

path    #文件路径

state
    directory    目录
    file
    touch    空文件
    absent    删除
    link    软连接
    hard    硬链接

例子:
ansible all -m file -a "path=/IT state=directory owner=it"
创建IT目录,并制定属主是it

ansible all -m file -a "path=/tmp/IT.txt state=touch mode=777"
创建文件IT.txt 并指定权限

ansible all -m file -a "path=/tmp/cron src=/var/log/cron state=link"
创建软连接,连接是自己本机的文件前面的path是连接存放地址,后面的src是源文件地址

ansible all -m file -a "path=/tmp/cron state=absent"
删除软连接

ansible all -m file -a "path=/IT state=absent"
删除文件夹

补充知识

软连接   快捷方式   ln -s   源文件修改软连接修改 源文件删除软连接失效 可以跨分区
硬链接    硬盘的位置   ln    源文件修改硬链接修改 源文件删除硬链接不变 不可以跨分区
复制    开辟新空间   cp    源文件修改cp的不变 源文件删除不变 可以跨分区

二、ansible中Fetch模块

  拉取远程主机的文件,并以主机IP地址或者主机名为目录,并保留了原来的目录结构

dest    目标地址

src    源地址

ansible all -m fetch -a "src=/var/log/cron dest=/tmp"
将所有被控机下    /var/log/cron    拉取到主控机下的    /tmp    下

三、ansible中Yum模块

  1.yum和rpm有什么关系,区别是什么

    yum的底层是rpm来执行的

  区别:

    yum自动解决依赖关系,rpm需要手动解决依赖关系

  2.被控机的yum源怎么配置

   我们要在其他的被控机器上比如安装redis怎么办

首先要将管控机上的yum的epel源复制到被管控机上
ansible all -m copy -a "src=/etc/yum.repos.d/epel.repo dest=/etc/yum.repos.d/epel.repo"
第二步在管控机上执行
yum.repos.d]# ansible all -m yum -a "name=redis"

  第一步执行完就相当于配置完了被控机的epel源,然后执行第二部就安装完事了

  我们可以打开主控机中的  vi /etc/yum.repos.d/epel.repo  文件看下里面有啥,你会发现这几行代码:

[epel]    #名称
name=Extra Packages for Enterprise Linux 7 - $basearch  #全名或者描述信息
baseurl=http://mirrors.aliyun.com/epel/7/$basearch  # 源url地址
failovermethod=priority
enabled=1  #是否启用,1启用,0不启用
gpgcheck=0  #是否检验key文件,0不校验 1校验
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7

  那么,yum模块怎么安装包组呢????

  先看下有哪些参数:

disablerepo    #禁用某个源

enablerepo    #启用某个源

name    #包名

state
    install    #安装
    remove    #卸载

ansible web -m yum -a "name=python2-pip" #安装软件包

ansible web -m yum -a "name=python2-pip,redis" #安装多个包

ansible web -m yum -a "name='@Development Tools'" #安装开发工具包组

ansible web -m yum -a "name=nginx state=absent" #卸载

安装完成后可以执行    yum grouplist     #查包组信息

四、Pip模块

  先来熟悉下pip的命令

pip freeze > a.txt    # 导出本地环境,当然我的名命有问题随便命名的

pip install -r a.txt    #安装导出的所有的包

pip uninstall 包名    #卸载

  pip模块的参数

chdir    #切换目录

name    #包名

requirements    #导出的文件

virtualenv    #虚拟环境

五、Service模块

  Linux服务的命令是这样的

Linux服务命令

服务启动命令
    centos 7
    systemctl start redis
    
    centos  6
    service redis start

开机自启动
    centos 7
    systemctl enaable redis 

    centos 6
    chkconfig redis on

  以及一些默认端口号

ssh 22
http 80
https 443
mysql  3306
redis 6379
mongodb 27017
oracle 1521
tomcat 8080
windows 远程桌面 3389
ftp 20 21
django 8000
flask  5000

  Service模块一些参数

enaled    #开机启动

name    #服务名称

state    
    started    #启动
    stopped    #停止
    restarted    #重启
    reloaded    #重载(平滑重启)

use    启动的用户

  用法举个栗子

ansible all -m service -a "name=redis state=started"
将redis服务启动

ansible all -m service -a "name=redis state=stopped"
将redis服务关闭

ansible all -m service -a "name=redis enabled=yes"
设置开机自启动

六、cron定时任务模块

  模块参数

day    #天

disabled    #禁用crontab,表现形式加#

hour    #小时

job    #任务

minute    #分钟

month    #月

name    #名字,任务描述

user    #用户

weekday    #周

任务名字name必须不同否则不会执行,如果不加name默认为None

  使用方法举个栗子

ansible all -m cron -a "minute=12 name=touchfile job='touch /tmp/IT.txt'"
创建文件

ansible all -m cron -a "name=touchfile state=absent"
删除任务

ansible all -m cron -a "minute=12 name=touchfile2 job='touch /tmp/IT2.txt' disabled=yes" 
#注释

ansible all -m cron -a "name=None state=absent"
删除名称为空的计划任务

七、User模块

  linux命令关于user的

-d 设置用户家目录
useradd -d /opt/alex2 alex2
-g 设置用户的属组
useradd -g alex2 alex3 
-G, --groups 附加组
useradd -G alex2,root alex4
-r, --system 系统账号
useradd -r alex5 # 系统账号没有家目录
-s, --shell #设置用户登录后的shell
useradd -s /sbin/nologin alex8
-u, --uid UID #设置用户的id
useradd -u 2000 alex9
设置了用户的id以后,在设置用户则从最大的id开始往后数
用户分类
超级管理员 root 0
普通用户
    系统用户  启动一些服务或者进程,不能登录  1-999 centos7 1-499 centos6 从大到小
    登录用户  可以登录的用户 1000-65535 centos7 500-65535 centos6
从小到大
userdel
userdel alex8 默认不删除家目录
-r 删除用户的家目录
userdel -r alex9 删除用户并删除用户的家目录

  User模块的一些参数以及用法例子

group    #属组

groups    #附加组

home    #设置家目录

name    #用户名

remove    #删除用户并删除用户的家目录

shell    #用户登陆后的shell

system    #系统用户

uid    #用户id
ansible web -m user -a "name=alex10 shell=/sbin/nologin home=/opt/alex10 uid=3000 groups=root" #创建用户,并指定用户的shell,家目录,uid,以及附加组
ansible web -m user -a "name=alex11 shell=/sbin/nologin home=/opt/alex11"
ansible web -m user -a "name=alex12 system=yes" #创建系统用户
ansible web -m user -a "name=alex12 state=absent" #删除用户,单不删除家目录
ansible web -m user -a "name=alex11 state=absent remove=yes" # 删除用户并删除用户的家目录

八、Group模块

  Linux关于组的命令

groupadd 
-g 设置id
-r 系统组
超级管理员组 root 0
普通组
    系统组  1-999 centos7 1-499 centos6 从大到小 
    登录用户组 1000-65535 centos7 500-65535 centos6
从小到大
查看
tail /etc/group
groupadd -g 3000 wusir10
groupadd -r wusir11

  Group模块

gid 组id
system 系统组
name 名称
ansible web -m group -a "name=wusir10 system=yes gid=5000" 创建系统组
ansible web -m group -a "name=wusir11" 创建普通的组
ansible web -m group -a "name=wusir11 state=absent" #删除组

   

  

  

猜你喜欢

转载自www.cnblogs.com/guchenxu/p/10822681.html