zoukankan      html  css  js  c++  java
  • 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" #删除组

       

      

      

  • 相关阅读:
    线程池3种终止方式比较
    SQL Update多表联合更新的方法
    SQL SERVER 表添加新字段
    JSONObject
    char码值对应列表大全
    JSONOjbect,对各种属性的处理
    Spring MVC ajax提交方式
    docker 初学者 安装 命令
    VMware虚拟机安装CentOS7 设置Nat网络 (超详细)
    关于 i++ 和 ++ i
  • 原文地址:https://www.cnblogs.com/guchenxu/p/10822681.html
Copyright © 2011-2022 走看看