美文网首页
综合架构远程管理-详解二

综合架构远程管理-详解二

作者: ManBu_x | 来源:发表于2019-08-22 19:15 被阅读0次

    day 38 综合架构批量管理 ansible(自动化管理软件)

    课程介绍

    1. 批量管理服务配置
    a 主机清单配置部分

    b 掌握模块功能应用
    copy(推送) , fetch(拉取) , file(管理数据信息/修改属性 或者 创建/删除数据) ,user(创建用户) , group(创建用户) ,yum(下载安装软件) ,service(管理服务运行状态) ,cron(定时任务模块)

    特殊需求:
    archive unarchive(压缩/解压缩) ,setup(收集信息模块) , debug(指定输出相应信息) , tmplate(模板模块) , mysql(数据库???) lineinfile(类似sed命令 修改替换文件内容)

    c 掌握剧本功能副本

    课程回顾

    1. 远程管理服务配置文件
    /etc/ssh/sshd_conf 服务端
    /etc/ssh/ssg_conf 客户端

    2. 原创管理服务防范入侵
    a 尽量使用秘钥登录
    b 尽量减少架构中外网地址
    c 有外网地址的服务器,进行监听
    d 防火墙硬件做安全访问 控制
    e 监控重要文件是否被修改
    f 对重要文件信息上锁

    3. 批量管理服务 ansible
    a 概念:同时并行管理多台数据
    b 作用:实现批量部署服务
    实现批量分发数据
    实现批量收集主机信息
    实现批量自动化管理应用
    c 特点:部署安装简单方便
    客户端不需要部署
    软件不需要启动服务
    功能强大

    4. ansible部署
    管理端: yum install -y ansible
    被管理端: 确认防火墙和selinux是否关闭

    5. ansible主机清单配置 /etc/ansible/hosts
    方法一:直接将ip地址写入
    方法二:分组进行配置
    方法三:设置ansible内置变量
    方法四:嵌入式配置主机清单
    方法五:利用匹配符号

    第四个模块, copy 文件模块 可以讲管理端数据进行批量分发/也可以移动或调整被管理端数据

    重要模块参数:
    src : ---指定管理端要分发的数据路径信息
    dest : ---指定数据传输到被管理端什么目录中
    mode : ---数据传输完毕后,设置数据权限信息
    owner : ---数据传输完毕后,设置数据属主信息
    group : ---数据传输完毕后,设置数据属组信息
    backup : ---是否开启文件备份==.bak
    remote_src : ---指定源的路径信息,从被管理端进行读取
    content : ---可以直接不在管理端创建文件,对文件进行分发,并且可以编辑文件简单内容
    validate : 检查文件信息的语法错误以及其他错误

    模块参数用法一:
    • ansible 分组 -m copy -a "src=/oldboy/oldboy.txt dest=/oldboy/ mode=600 owner=属组 group=属主"
      说明: 对目录进行分发

      1. 修改文件权限信息 和 文件属主属组信息
      2. 可以在被管理端穿件指定目录信息
    • ansible 分组 -m copy -a "src=/oldboy/ dast=/oldboy/"
      说明: 对目录进行分发
      src指定目录后面有斜线: 传输目录下面的内容
      src指定目录后面没有斜线: 传输整个目录
    模块参数用法二:备份数据/还原数据\

    传输备份文件数据方法一:
    ansible 分组 -m copy -a "src=/oldboy/oldboy.txt dets=/oldboy/ backup=yes"

    传输备份文件数据方法二:
    ansible oldboy -m copy -a "src=/oldboy/oldboy.txt dest=/oldboy/oldboy.txt.bak remote_src=yes"

    还原数据
    ansible oldboy -m copy -a "src=/oldboy/oldboy.txt.bak dest=/oldboy/oldboy.txt remote_src=yes"

    =================================================================
    参数说明
    ansible oldboy -m copy -a "src=/oldboy/oldboy.txt dest=/opt/ remote_src=yes"
    == 相应被管理端 mv /oldboy/oldboy.txt /opt/
    ansible oldboy -m copy -a "src=/oldboy/oldboy.txt dest=/opt/"
    == 相应管理端 scp -rp /oldboy/oldboy.txt xx.xx.xx.xx:/opt/
    ================================================================

    第五个模块fstch 文件模块 进行数据拉取操作

    重要参数:
    src : ---指定远程主机需要拉取数据信息
    dest : ---将数据保存到本地管理主机的什么路径中

    拉取数据方法:
    ansible oldboy -m fetch -a "src=/opt/password.txt dest=/oldboy"

    拉取后的数据是根据源端路径信息保存

    第六个模块: file 文件类型 直接修改数据属性/创建或删除数据信息

    重要参数:
    path : 指定要操作的远程主机数据路径信息
    mode : 修改文件权限信息
    owner : 修改文件属主信息
    group : 修改文件属组信息
    state: 状态参数信息:创建目录(directory)/文件(touch)/软链接(link)/硬链接(hard)/还可以删除文件(absent)/查看普通文件是否存在(file)
    recurse : 递归修改目录权限

    用法一: 修改文件属主/组信息
    ansible 主机 -m file -a "path=对端文件 mode=666 owner=属主 group=属组"

    修改目录权限属性信息:
    ansible 主机 -m file -a "path=/对端目录/ mode=666 owner=属主 group=属组" 递归修改目录权限 recurse=yes

    用法二: 添加或删除数据信息
    创建目录:
    ansible 主机 -m file -a "path=/oldboy/可多级目录 state=directory"

    创建文件:
    ansible 主机 -m file -a "path=/oldboy/oldboy.txt state=touch"

    创建软链接:
    ansible 主机 -m file -a "src=/oldboy/oldboy.txt path=源目录 state=link"

    创建硬链接:
    ansible 主机 -m file -a "src=/oldboy/oldboy.txt path=源目录 state=hard"

    删除文件:
    ansible 主机 -m file -a "path=/oldboy/oldboy.txt state=absent"

    删除目录:
    ansible 主机 -m file -a "path=/oldboy/oldboy/ state=absent"

    查看普通文件是否存在:
    ansible 主机 -m file -a "path=路径文件 state=file"

    第七个模块: user 用户模块 创建或删除用户信息

    name : 指定创建用户名称
    create_home : 创建用户是否有家目录
    shell : 指定用户是否能够登陆系统 虚拟用户 /sbin/nologin
    uid : 指定用户uid数值
    password : 指定用户密码信息 如何使用密文信息设置密码
    state : 默认present表示创建用户 使用absent删除用户信息
    group : 指定用户属于哪个用户组(主要组)==useradd -g
    groups : 指定用户属于哪个用户组(附属组)==useradd -G
    remove=yes : 将用户家目录删除

    用法一: 创建用户用户
    ansible 主机 -m user -a "name=rsync uid=2000 create_home=no shell=/sbin/nologin"(虚拟)
    ansible 主机 -m user -a "name=oldboy uid=2001"(普通用户)

    用法二: 设置用户密码信息
    ansible 主机 -m user -a "name=oldboy password="

    PS:利用user,模块如何创建密文密码信息 双引号换成单引号以防解析密文中变量符号
    创建密文密码信息的两种方法.png
    PS:更新pip python软件包源方式

    用法三: 删除用户信息
    ansible 主机 -m user -a 'name=oldboy state=absent'
    删除用户家目录 remove=yes

    第八个模块 : group 用户模块 创建或删除用户组信息

    重要参数:
    name : 指定创建用户组名称信息
    gid : 指定创建用户组id编号信息
    state : 默认present指定absent表示删除用户组

    用法一: 创建指定用户组信息
    ansible 主机 -m group -a "name=oldboy gid=3000"

    用法二: 删除指定用户组
    ansible 主机 -m group -a "name=oldboy state=absent"

    第九个模块: yum 安装软件模块 安装软件/卸载软件

    name : 指定安装什么软件
    state : 指定状态信息安装软件(installed , latest , present) 卸载软件(absent , removed)

    用法一: 安装软件
    ansible 主机 -m yum -a "name=telnet-server state=installed"

    用法二: 卸载软件程序
    ansible 主机 -m yum -a "name=telnet-server state=absent"

    第十个模块: service 系统模块 控制服务运行状态

    重要参数:
    name : 指定要管理的服务名称
    state : 指定服务运行状态 停止(stopped) 启动(started) 重启(restarted) 平滑重启(reloaded)
    enabled : 指定服务是否开机自启

    用法一: 启动服务等等
    ansible 分组 -m server -a "name=rsyncd state=started"

    用法二: 设置服务开机自启或关闭(no)
    ansible 分组 -m server -a "name=rsyncd enabled=yes

    第十一个模块: cron 系统模块 批量设置定时任务

    重要参数 ==(crontab -e)
    name : 定义定时任务的注释信息,避免出现重复的定时任务
    minute : 指定时间信息中 分钟 信息(0-59 */5 0,10) ,是分隔 -是连续
    hour : 指定时间信息中 小时 信息(0-23 *)
    day : 指定时间信息中 日期 信息(1-31)
    mouth : 指定时间信息中 月份 信息(1-12)
    weekday : 指定时间信息中 星期 信息(0-6)
    job : 指定定时任务命令信息
    disabled : 注释任务信息(yes) 取消注释(no)

    用法一: 设置定时任务
    ansible 主机 -m cron -a "name=1 minute=*/5 job=ntpdate ntp1.aliyun.com"

    用法二: 删除定时任务
    ansible 主机 -m cron -a "name=1 state=absent

    用法三: 注释定时任务
    ansible 主机 -m cron -a "name=1 minute=*/5 'job=ntpdate ntp1.aliyun.com' disabled=yes"(如果不写任务时间信息的话会把时间重置)

    第十二个模块: mount 系统模块 进行批量挂载

    src : 挂载存储设备信息
    path : 挂载点目录信息
    fstype : 挂载的文件系统类型
    state : 指定挂载(mounted , present)还是卸载(unmounted , absent)
    挂载 : mounted:临时挂载存储目录信息 永久也挂载了存储挂载目录信息 推荐 --- present: 只是实现永久挂载
    卸载: unmounted: 只是实现临时卸载 --- absent: 临时卸载 永久也卸载

    挂载 : ansible 172.16.1.41 -m mount -a "src=172.16.1.31:/data path="

    相关文章

      网友评论

          本文标题:综合架构远程管理-详解二

          本文链接:https://www.haomeiwen.com/subject/xuunsctx.html