zoukankan      html  css  js  c++  java
  • 运维自动化 第四章 模块

    5.file模块(对文件或目录的操作,在远程机器上创建)

    参数:
    group  #属组
    mode  #权限
    owner #属主
    path   #路径
       src存在的时候   state = link #软连接   state = hard #硬链接 state directory 目录 file 没有就不创建 touch 空文件 absent 删除 link 软连接 hard 硬链接

     简单实例:

    #创建目录,并指定属主为alex
    ansible web -m file -a "path=/alex5 state=directory owner=alex" 
    
    #创建文件并指定权限为755
    ansible web -m file -a "path=/tmp/wusir.txt state=touch mode=755"
    
    #创建软连接,链接的是自己的文件
    ansible web -m file -a "path=/tmp/wusir.txt state=link src=/var/log/cron"
    
    #删除软连接
    ansible web -m file -a "path=/tmp/wusir.txt state=absent"
    
    #删除文件夹
    ansible web -m file -a "path=/tmp/alex5 state=absent"
    

    补充:

      软连接 快捷方式 ln -s  源文件修改软连接修改  源文件删除软连接失效   可以跨分区

      硬链接 硬盘的位置  ln  源文件修改硬链接修改  源文件删除硬链接不变  不可以跨分区

      复制   开辟新空间   cp    源文件修改cp的不变     源文件删除不变      可以跨分区

    6.fetch模块(拉取远程主机的文件,创建一个以ip地址或主机名为名称的目录,并且保留原来的目录结构)

    参数:
    dest :目标地址
    src : 源地址
    

     实例:

    #拉取远程主机的文件,并以主机ip地址或者主机名为目录,并且保留了原来的目录结构
    ansible web -m fetch -a "src=/var/log/cron dest=/tmp"
    

     7.yum包(安装linux的软件包)

    1.yum跟rpm有什么关系,有什么区别?
    rpm  需要手动解决依赖关系
    yum  自动解决依赖关系
    
    2.yum源怎么配置
    [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
    3.yum怎么安装包组
    - name@包组名称 yum grouplist #查包组信息
     yum grouplistall
    yum search #查看
    yum makecache #重建缓存
    yum clear #清空缓存

     参数:

    disablerepo  #禁用某个源
    enablerepo  #启用某个源
    name=redis     #包名
    name=@development tools #包组加@ state install #安装 remove,absent #卸载

     实例:

    #安装python2-pip软件包
    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 "state=absent name=redis"
    

    8. pip包(安装python的包)

    #将本地环境导出
    pip freeze > a.txt
    
    #安装所有的包
    pip install -r a.txt
    
    #查看所有的包
    pip list 
    
    #卸载
    pip uninstall flask 
    
    #下载包
    python setup.py build
    python setup.py install
    

     参数:

    chdir  #切换目录
    name  #包名
    requirements  #导出的文件
    virtualenv  #虚拟环境
    

    9.service模块(启动服务,前提:在命令行可以通过service或者system启动服务)

    启动前提: 提供启动文件
    启动 centos7: systemctl start redis centos6: service redis start 开机自启动 centos7: systemctl enable redis centos6: chkconfig redis on init 0关机 1单用户 3命令行 5图形界面 6重启 ps -ef|grep redis #查进程 ss -t tcp -u udp -n 以端口形式显示 -l 显示所有已经启动的端口 -p 显示pid

     默认的端口号

    默认端口号
    
    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
    

     参数:

    enabled  #开机启动
    name #服务名称
    state 
        started #启动
        stoped  #停止
        restarted #重启
        reloaded #重新加载,平滑重启
    

     实例:

    #启动
    ansible web -m service -a "name=redis state=started"
    
    #关闭
    ansible web -m service -a "name=redis state=stopped"
    
    #设置开机自启
    ansible web -m service -a "name=redis enabled=yes"
    

    10.cron模块(定时任务)

    crontab
    *   *   *   *   *   job
    分  时  日 月  周  任务
    取值范围
    0-59  0-23  1-31  1-12  0-7
    
    #每隔三分钟执行一次job
    */3  *  *  *  *  job
    
    #10-12点第4分钟执行,包括12点
    4 10-12 * * * job
    分钟最好不要用*
    分钟最好不要用*
    分钟最好不要用*
    分钟最好不要用*
    尽量写绝对路径
    
    应用场景:
        备份
        同步时间
        删除文件
    -e  编辑
    -l   查看 
    -r   删除

     参数:

    day 天
    disabled  禁用crontab  表现形式加#
    hour  小时
    job  任务
    minute  分钟
    month  月
    name 名字,描述信息
    user  用户
    weekday 周
    添加时名字必须不同,如果不加name,默认名称为None

     实例:

    #在12分的时候创建文件
    ansible web -m cron -a "name=touch_file minute=12 job='touch /etc/x.txt'"
    
    #删除
    ansible web -m cron -a 'name=touch_file state=absent'
    
    #注释
    ansible web -m corn -a "minute=touch_file name=touchfile job='touch /etc/x.txt disabled=yes'"
    
    #删除名称为None的计划任务
    ansible web -m corn -a "name=None state=absent"
    

    11.user

    参数:

    group 属组
    groups 附加组
    home 设置家目录
    name 用户名
    remove 删除用户并删除用户的家目录
    shell 用户登录后的shell
    system 系统用户
    uid 用户的id
    password 设置用户的密码
    state 状态

     实例:

    #创建用户,并指定用户的shell,家目录,uid,以及附加组
    ansible web -m user -a "name=alex10 shell=/sbin/nologin home=/opt/alex10 uid=3000 groups=root" 
    
    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" 

     如何查看用户是否被创建

    tail /etc/passwd
    tail /etc/shadow
    id alex
    

     useradd

    参数
    -d 设置用户家目录前面是家目录,后面是用户
    useradd -d /opt/alex2 alex2 -g 设置用户的属组,前面是那个属组,后面是那个用户
    useradd -g alex2 alex3 -G 设置附加组 ,前面的是那些附加组,后面是用户
    useradd -G alex2,root alex4 -r 系统账号 ,系统账号没有家目录
    useradd -r alex5 -s 设置用户登录后的shell
    useradd -s /sbin/nologin alex8 -u 设置用户的Id
    useradd -u 2000 alex9
    设置了用户的id以后,在设置用户则从最大的id开始往后数

     用户的分类: 

      超级用户: root

      普通用户

        系统用户 :  启动一些服务或者进程,不能登录  1-999 centos7 1-499 centos6 从大到小

        登录用户 :  可以登录的用户   1000-65535 centos7 500-65535 centos6  从小到大

    userdel  

      userdel alex8  默认不删除家目录

      -r 删除用户的家目录

      userdel -r alex9  删除用户并删除用户的家目录

    12.group

    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
    

     参数:

    gid  组id
    system  系统组
    name 名称
    state 状态

     实例:

    #创建系统组
    ansible web -m group -a "name=wusir1 system=yes gid=5000"
    
    #创建普通的组
    ansible web -m group -a "name=susir2"
    
    #删除组
    ansible web -m group -a "name=susir1 state=absent"
    

      

  • 相关阅读:
    程序集、属性和元数据
    wget 使用探索
    为wget使用代理
    创建项目 (Visual C#)
    wget 下载整个网站,或者特定目录
    演练:使用 Visual C# 创作用户控件
    NavigateUrl属性绑定 天高地厚
    【转载】Repeater控件里的大智慧 天高地厚
    【转载】ASP.NET Page 那点事 天高地厚
    意向锁如何提高性能 天高地厚
  • 原文地址:https://www.cnblogs.com/zty1304368100/p/10821833.html
Copyright © 2011-2022 走看看