zoukankan      html  css  js  c++  java
  • ansible的软件相关模块

    1.yum

    1.1.rpm和yum的区别

      rpm:redhat package  manager      使用rpm我们可以方便的进行软件的安装、查询、卸载、升级等工作。但是rpm软件包之间的依赖性问题往往会很繁琐,尤其是软件由多个rpm包组成时。

      yum 可以解决依赖关系     能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。

    yum源配置

    [epel]
    name=Extra Packages for Enterprise Linux 7 - $basearch #名字
    baseurl=http://mirrors.aliyun.com/epel/7/$basearch  #rpm源的地址,可以写http,https,ftp,Samba,file:
    failovermethod=priority
    enabled=1 # 是否开启,1代表开启,0表示关闭
    gpgcheck=0  #是否校验签名,1代表校验,0表示校验
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7

    yum 安装包组

    yum grouplist # 查看包组信息
    yum groupinstall # 安装包组
    disablerepo #禁用源
    enablerepo #启用源
    name #包名
    state  install (`present' or `installed', `latest'), or remove (`absent' or `removed')

      ansible使用yun源

    ansible web -m yum -a 'name=wget' # 安装wget
    ansible web -m yum -a 'name=python2-pip' # 安装python2-pip
    ansible web -m yum -a 'name=wget state=absent' # 卸载软件包
    ansible web -m yum -a 'name="@Development Tools"' # 安装包组

    1.2.pip

    pip install  # 安装包
    pip freeze > a.txt  # 将python的环境打包到文件中
    pip install -r a.txt # 安装文件中的包
    pip list  # 查看所有的以安装成功的包

      ansible 使用 pip

    ansible web -m pip -a 'name=flask' # 安装flask模块

    1.3.service

    ps -ef|grep nginx #查看进程
    ss -tnlp # 查看端口信息
    systemctl start nginx # centos7
    service nginx start  # centos6
    systemctl enabled nginx # centos7 开机自启动
    chkconfig nginx on # centos6开机自启动

      ansible 使用 service

    ansible web -m service -a 'name=nginx state=started' # 启动nginx
    ansible web -m service -a 'name=nginx state=stopped' # 关闭nginx

    1.4.cron  计划任务

    * * * * * job 
    分 时 日 月 周 任务
    0 */2 *  * *  job  每隔两个小时
    0 12,13 * * * job 12点和13点
    0 12-17 * * * job 12点到17点
    0 12-17/2 * * 1,3,6,0 周1,周3,周6,周7 12点到17点每隔两个小时 
    crontab -e # 编辑计划任务
    crontab -l # 查看计划任务
    crontab -r # 删除计划任务
    day  天
    disabled 禁用
    hour 小时
    job 任务
    minute 分钟
    month 月
    name 任务名字
    weekday 周

      ansible 使用 cron

    ansible db -m cron -a 'minute=26 job="touch /tmp/xzmly.txt" name=touchfile' # 新建一个计划任务
    ansible db -m cron -a 'name=touchfile state=absent' # 删除一个计划任务
    ansible db -m cron -a 'minute=26 job="touch /tmp/xzmly.txt" name=touchfile disabled=yes'  # 禁用计划任务,以#表示禁用

    1.5.user(用户)  用户相关

    用户:
        管理员  root 0
        普通用户
            系统用户  不能登录  1-999 centos7 1-499 centos6
            登录用户  可以登录  1000-65535 centos7 500-65535 centos6
    用户组:
        管理员组 root 0
        系统用户组 1-999 centos7 1-499 centos6
        登录用户组 1000-65535 centos7 500-65535 centos6 
        
     -d   # 指定用户的家目录
     -g   # 指定用户的组
     -G  # 执行用户的附加组
     -s   # 指定登录后使用的shell
     -r   # 创建一个系统组
     useradd -r wusir    #  创建系统用户, 从999倒序
     useradd -s /sbin/nologin alexsb   # 创建的是普通用户,从1000开始升序
      useradd -d /opt/alexsb2 alexsb2   # 创建用户时指定用户的家目录
       useradd -u 3000 alexsb6  # 创建用户并指定用户的uid
      userdel alex   # 删除用户
      userdel -r alexsb2  # 删除用户并删除用户的家目录
      
      groupadd yuchao   #  创建用户组
      groupdel yuchao    #  删除用户组

      ansible 使用 user

    group    #
    groups   # 附加组
    home     # 家目录
    name     # 用户名
    password    # 密码
    remove ?
    shell    #  用户登录后使用的shell
    system   #  创建一个系统用户
    uid    # 用来指定用户的id
    state    #  状态
    ansible db -m user -a 'name=wulaoshi uid=4000 home=/opt/wulaoshi groups=root shell=/sbin/nologin'  # 创建一个用户,并指定用户的id,用户的家目录,用户的附加组,用户的shell
    ansible db -m user -a 'name=wulaoshi state=absent'  # 删除用户但是不删除用户的家目录
    ansible db -m user -a 'name=wulaoshi3 state=absent remove=yes' # 删除用户并删除用户的家目录

    1.6.group(组)  用户相关

    gid    # 组的id
    name  # 组名
    system   # 系统组
    state
    ansible db -m group -a 'name=wulaoshi system=yes'  # 创建系统组
    ansible db -m group -a 'name=wulaoshi state=absent'  # 删除组

    练习:

    web
    
    创建一个用户组alex10
    
    ansible web -m group -a 'name=alex10'
    
    创建一个用户wusir10
    
    ansible web -m user -a 'name=wusir10'/etc/fstab文件复制到远程主机上/tmp/f
    
    ansible web -m copy -a 'src=/etc/fstab dest=/tmp/f'
    
    安装nginx,并启动,设置开机自启动
    
    ansible web -m yum -a 'name=nginx'
    
    ansible web -m service -a 'name=nginx enabled=yes'

    2.ansible剧本

      yaml

    是一个编程语言
    xml 是用来写配置文件的一个语言
    ini 
    yaml

      字典:key:value

      列表:[]

      后缀名: yaml  yml

    ansible-playbook 命令格式

      执行顺序:从上往下

      特性:幂等性  不管执行多少遍,结果都是一样的

    ansible-playbook [options] playbook.yml [playbook2 ...] 
    -C, --check   # 检查,白跑,干跑
    -f FORKS, --forks=FORKS #用来做并发
    --list-hosts # 列出主机列表
    --syntax-check # 语法检查 

    简单用法

    - hosts: web
      tasks:
      - name: creategroup
        group: name=alex10
      - name: cretaeuser
        user: name=wusir10
    hosts: gb
    tasks:
    - name: 第san个姑娘
      dong: 第san个姑娘

    传参

    - hosts: web
      tasks:
      - name: create{{ user }}
        user: name={{ user}}

      第一种方式

    ansible-playbook -e 'user=alexsb10' p2.yml

      第二种方式(hosts文件 主机列表后面)

    [db]
    192.168.107.132 user=alexsb11
    192.168.107.133 user=alexsb12

      第三种方式(hosts文件[groupname:vars])

    [db:vars] #表示组的参数
    user=alexsb13

      第四种方式(playbook里面写vars)

    - hosts: db
      vars:
      - user: alexsb14
      tasks:
      - name: create{{ user }}
        user: name={{ user}}

      第五种方式

    - hosts: db
      tasks:
      - name: sum
        shell: echo 7+8|bc
        register: user
      - name: createuser
        user: name={{user.stdout}}

      传参方式的优先级

    -e > playbook vars > hosts文件
  • 相关阅读:
    Total Video Converter v3.71 注册码
    Web下载文件
    语音朗读
    SQLSERVER 删除重复记录
    Windows8[启用IIS8 asp.net功能]
    黑链代码
    在ASP.NET中防止注入攻击[翻译]
    Oracle 正确删除archivelog文件
    浅谈网站黑链检测和清除的方法
    解密SQLServer2000加密存储过程,函数,触发器,视图
  • 原文地址:https://www.cnblogs.com/chenxi67/p/10407494.html
Copyright © 2011-2022 走看看