综合架构批量管理服务–Ansible

本篇介绍部分
1) ansible批量管理服务模块说明
2) ansible批量管理服务主机清单
3) ansible批量管理服务剧本编写
4) ansible批量管理服务实战应用(rsync nfs)
上篇知识点
1) ansible服务概念介绍
a 批量管理多台主机
b 提高运维工作效率
c 降低运维工作难度
2) ansible服务特点说明
01. 管理端不需要启动服务程序(no server)
02. 管理端不需要编写配置文件(/etc/ansible/ansible.cfg)
03. 受控端不需要安装软件程序(libselinux-python)
被管理端selinux服务没有关闭 — 影响ansible软件的管理
libselinux-python让selinux开启的状态也可以使用ansible程序
04. 受控端不需要启动服务程序(no agent)
05. 服务程序管理操作模块众多(module)
06. 利用剧本编写来实现自动化(playbook)
3) ansible服务部署安装
a 安装服务软件
b 编写主机清单
c 进行管理测试

   补充: 远程主机无法管理问题分析1. 管理端没有分发好主机的公钥2. 被管理端远程服务出现问题3. 被管理端进程出现僵死情况/usr/sbin/sshd -D  --- 负责建立远程连接sshd: root@pts/0   --- 用于维护远程连接(windows--linux)sshd: root@notty   --- 用于维护远程连接(ansible--被管理端)4) ansible服务模块应用command (默认模块) shell   (万能模块)script  (脚本模块)copy    (批量分发文件) 管理端 ---> 多个被管理fetch   (批量拉取数据) 管理端 <--- 多个被管理destsrcansible 172.16.1.31 -m fetch -a "src=/tmp/oldboy.txt dest=/tmp"file补充: ansible学习帮助手册如何查看ansible-doc -l         --- 列出模块使用简介ansible-doc -s fetch   --- 指定一个模块详细说明ansible-doc fetch      --- 查询模块在剧本中应用方法
  1. ansible模块说明:
    yum模块
    name — 指定安装软件名称
    state — 指定是否安装软件
    installed — 安装软件
    present
    latest
    absent — 卸载软件
    removed
    ansible 172.16.1.31 -m yum -a “name=iotop state=installed”

    service模块: 管理服务器的运行状态 停止 开启 重启
    name: — 指定管理的服务名称
    state: — 指定服务状态
    started 启动
    restarted 重启
    stopped 停止
    enabled — 指定服务是否开机自启动
    ansible 172.16.1.31 -m service -a “name=nfs state=started enabled=yes”

    cron模块: 批量设置多个主机的定时任务信息
    crontab -e

    • 定时任务动作
      分 时 日 月 周

    minute: # Minute when the job should run ( 0-59, *, */2, etc )
    设置分钟信息
    hour: # Hour when the job should run ( 0-23, *, */2, etc )
    设置小时信息
    day: # Day of the month the job should run ( 1-31, *, */2, etc )
    设置日期信息
    month: # Month of the year the job should run ( 1-12, *, */2, etc )
    设置月份信息
    weekday: # Day of the week that the job should run ( 0-6 for Sunday-Saturday, *, etc )
    设置周信息

    job 用于定义定时任务需要干的事情

    基本用法:
    ansible 172.16.1.31 -m cron -a “minute=0 hour=2 job=’/usr/sbin/ntpdate ntp1.aliyun.com >/dev/null 2>&1’”

    扩展用法:

    1. 给定时任务设置注释信息
      ansible 172.16.1.31 -m cron -a “name=‘time sync’ minute=0 hour=2 job=’/usr/sbin/ntpdate ntp1.aliyun.com >/dev/null 2>&1’”

    2. 如何删除指定定时任务
      ansible 172.16.1.31 -m cron -a “name=‘time sync01’ state=absent”
      PS: ansible可以删除的定时任务,只能是ansible设置好的定时任务

    3. 如何批量注释定时任务
      ansible 172.16.1.31 -m cron -a “name=‘time sync’ job=’/usr/sbin/ntpdate ntp1.aliyun.com >/dev/null 2>&1’ disabled=yes”

    mount: 批量进行挂载操作
    src: 需要挂载的存储设备或文件信息
    path: 指定目标挂载点目录
    fstype: 指定挂载时的文件系统类型
    state
    present/mounted — 进行挂载
    present: 不会实现立即挂载,修改fstab文件,实现开机自动挂载
    mounted: 会实现立即挂载, 并且会修改fstab文件,实现开机自动挂载 *****

       absent/unmounted    --- 进行卸载absent:     会实现立即卸载, 并且会删除fstab文件信息,禁止开机自动挂载unmounted:  会实现立即卸载, 但是不会会删除fstab文件信息  *****
    

    user模块: 实现批量创建用户
    基本用法:
    ansible 172.16.1.31 -m user -a “name=oldboy01”

    扩展用法:

    1. 指定用户uid信息
      ansible 172.16.1.31 -m user -a “name=oldboy02 uid=6666”

    2. 指定用户组信息
      ansible 172.16.1.31 -m user -a “name=oldboy03 group=oldboy02”
      ansible 172.16.1.31 -m user -a “name=oldboy04 groups=oldboy02”

    3. 批量创建虚拟用户
      ansible 172.16.1.31 -m user -a “name=rsync create_home=no shell=/sbin/nologin”

    4. 给指定用户创建密码
      PS: 利用ansible程序user模块设置用户密码信息,需要将密码明文信息转换为密文信息进行设置
      生成密文密码信息方法:
      方法一:
      ansible all -i localhost, -m debug -a “msg={{ ‘密码信息123456’ | password_hash(‘sha512’, ‘oldboy’) }}”
      [root@m01 tmp]# ansible all -i localhost, -m debug -a “msg={{ ‘123456’ | password_hash(‘sha512’, ‘oldboy’) }}”
      localhost | SUCCESS => {
      “msg”: “ 6 6 6oldboy$MVd3DevkLcimrBLdMICrBY8HF82Wtau5cI8D2w4Zs6P1cCfMTcnnyAmmJc7mQaE9zuHxk8JFTRgYMGv9uKW7j1”
      }

    方法二:(忽略)
    mkpasswd --method=sha-512

    方法三:
    yum install -y python-pip
    pip install passlib
    python -c “from passlib.hash import sha512_crypt; import getpass; print(sha512_crypt.using(rounds=5000).hash(getpass.getpass()))”
    Password:
    6 6 6rJJeiIerQ8p2eR82$uE2701X7vY44voF4j4tIQuUawmTNHEZhs26nKOL0z39LWyvIvZrHPM52Ivu9FgExlTFgz1VTOCSG7KhxJ9Tqk.

    ansible 172.16.1.31 -m user -a ‘name=oldboy08 password= 6 6 6oldboy$MVd3DevkLcimrBLdMICrBY8HF82Wtau5cI8D2w4Zs6P1cCfMTcnnyAmmJc7mQaE9zuHxk8JFTRgYMGv9uKW7j1’

  2. 剧本的编写方法
    剧本的作用: 可以一键化完成多个任务
    自动化部署rsync服务:
    服务端的操作
    第一个历程安装软件:
    ansible 172.16.1.41 -m yum -a “name=rsync state=installed”

    第二个历程编写文件:
    ansible 172.16.1.41 -m copy -a “src=/xxx/rsyncd.conf dest=/etc/”

    第三个历程创建用户
    ansible 172.16.1.41 -m user -a “name=rsync create_home=no shell=/sbin/nologin”

    第四个历程创建目录
    ansible 172.16.1.41 -m file -a “dest=/backup state=directory owner=rsync group=rsync”

    第五个历程创建密码文件
    ansible 172.16.1.41 -m copy -a “content=‘rsync_backup:oldboy123’ dest=/etc/rsync.password mode=600”

    第六个历程启动服务
    ansible 172.16.1.41 -m service -a “name=rsyncd state=started enabled=yes”

    客户端的操作:
    第一个历程: 创建密码文件
    ansible 客户端地址 -m copy -a “content=‘rsync_backup:oldboy123’ dest=/etc/rsync.password mode=600”

    剧本的做成部分:
    演员信息: 男一号 hosts
    干的事情: 吻戏 tasks

    演员信息: 男二号
    干的事情: 看着

    剧本编写规范: pyyaml – 三点要求

    1. 合理的信息缩进 两个空格表示一个缩进关系
      标题一
      标题二
      标题三
      PS: 在ansible中一定不能用tab进行缩进

    2. 冒号的使用方法
      hosts: 172.16.1.41
      tasks:
      yum: name=xx
      PS: 使用冒号时后面要有空格信息
      以冒号结尾,冒号信息出现在注释说明中,后面不需要加上空格

    3. 短横线应用 -(列表功能)

      • 张三

        • 打游戏
        • 运动
      • 李四

        学习
        湖南

      • 王五

        运动
        深圳
        PS: 使用短横线构成列表信息,短横线后面需要有空格

    开始编写剧本
    mkdir /etc/ansible/ansible-playbook
    vim rsync_server.ymal
    说明: 剧本文件扩展名尽量写为yaml

    1. 方便识别文件是一个剧本文件
    2. 文件编写时会有颜色提示
  • hosts: 172.16.1.41
    tasks:
    yum: name=rsync state=installed
    copy: src=/tmp/rsyncd.conf dest=/etc/

    如何执行剧本:
    第一个步骤: 检查剧本的语法格式
    ansible-playbook --syntax-check rsync_server.yaml
    第二个步骤: 模拟执行剧本
    ansible-playbook -C rsync_server.yaml
    第三个步骤: 直接执行剧本
    ansible-playbook rsync_server.yaml

  • hosts: 172.16.1.41
    tasks:

    • name: 01-install rsync
      yum: name=rsync state=installed
    • name: 02-push conf file
      copy: src=/tmp/rsyncd.conf dest=/etc/
  1. 总结

    1. 将常用模块进行了补充说明
      fetch yum service user mount cron
    2. 剧本的编写规范
      a 空格规范
      b 冒号规范
      c 短横线规范(列表)
      剧本的组成

      • hosts: xxx
        tasks:

        • name: xxxx:xxx
          yum: xxx
        • name
          剧本的执行方式
          a 检查语法
          b 模拟执行
          c 真正执行

思考问题:

  1. 如何利用剧本部署rsync服务
  2. 如何利用剧本部署nfs服务

综合架构批量管理服务--Ansible(2)相关推荐

  1. 综合架构-高可用服务

    综合架构-高可用服务 高可用服务介绍说明 高可用服务工作原理 如何实现部署高可用服务 高可用keepalived服务部署流程 高可用服务企业应用 高可用服务常见异常问题 ----脑裂问题 如何实现ke ...

  2. linux批量管理服务,通过PSSH批量管理Linux服务器

    pssh是一个可以在多台服务器上执行命令的工具,同时支持拷贝文件,是同类工具中很出色的.使用是必须在各个服务器上配置好密钥认证访问. pssh 包安装 5 个实用程序: pssh 在多个主机上并行地运 ...

  3. 大型企业中如何批量管理千万台服务器之ansible自动化运维工具详解 [⭐建议收藏⭐]

    文章目录 ansible 自动化运维工具 详解 关于作者 作者介绍 一.ansible 概述 1.1 ansible 概述 1.2 是什么要使用 ansible 1.3 ansible 功能 1.4 ...

  4. ansible: Linux批量管理神器

    我们已经知道,基于集群可实现服务器横向扩展slace out.可是,当上百台主机集合成共同为一个站点提供web页面访问的形式时,怎么管理整个集群体呢? 一些小伙伴大概听说过pxe等可实现自动安装系统. ...

  5. Linux 运维工作中的经典应用ansible(批量管理)Docker容器技术(环境的快速搭建)...

    一 Ansible自动化运维工具 Python 在运维工作中的经典应用ansible(批量管理操作)1.安装ansible(需要bese epel 2种源) wget -O /etc/yum.repo ...

  6. Ansible批量管理Windows服务器,winrm配置

    (一)Ansible简介 Ansible 是一款轻量级的开源的自动化运维工具,支持 linux 和 windows(只支持 client,并且部分模块),利用 Ansible 可以简单批量的配置系统, ...

  7. 综合架构web服务之nginx详解

    文章目录 nginx 服务配置详细介绍 关于作者 前言 一.nginx web 入门简介 1.1 什么是nginx 1.2 常见的网站服务 1.3 nginx 网站服务特点 1.4 网站页面访问原理 ...

  8. ansible介绍、安装、远程执行命令、拷贝文件或目录、远程执行脚本、管理任务计划、安装包和管理服务、playbook、变量、循环、条件判断、handlers、安装nginx、管理配置文件

    24.15 ansible介绍 ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系 ...

  9. 智慧城管—城市综合管理服务平台解决方案

    智慧城管-城市综合管理服务平台解决方案 资料来源:https://t.zsxq.com/0azzBnjEK

最新文章

  1. libevent和libev的区别对比(二)
  2. bzoj 4711 小奇挖矿 ——“承诺”类树形dp
  3. Eclipse——Maven项目工程无法编译但可以运行解决方案
  4. AX中对Programmable section的动态控制
  5. 【转】智能音箱技术概览
  6. jquery-加入购物车动画
  7. 关于SQL Server对于表的一些查询
  8. mysql binlog备份_MySQL mysqldump + mysqlbinlog 备份和还原
  9. java day43【Filter:过滤器 、Listener:监听器】
  10. 嵌入式应该怎么去学?-熊健-专题视频课程
  11. 火车头采集器采集教程
  12. 使用 COLOR THIEF 获取图片主色,实现图片渐变遮罩,颜色填充等
  13. [BZOJ5109]大吉大利,晚上吃鸡!
  14. eclipse安装和jdk安装(windows平台)
  15. Hibernate 的 could not initialize proxy - the owning Session was closed问题
  16. 动态像素绘画——StarDust
  17. 检测不到声卡High Definition Audio控制器显示代码10?驱动人生教你如何解决问题
  18. 计算机游戏本和商务本的区别,商务本和游戏本有什么区别
  19. EDONG:助力中大型企业数字化转型
  20. Mean-Shift算法

热门文章

  1. nodejs实现抖音自动关注小姐姐小哥哥神器
  2. 超详细的字典(dict)
  3. 在MYSQL 自增,默认值,时间默认字段
  4. Mybatis-多表联查
  5. 《学一辈子光线追踪》 十 完成pdf管理
  6. 通过clipboard-online实现Windows与IOS之间的剪贴板共享
  7. CSD88539NDT
  8. 联想微型计算机光盘怎么放,怎么在电脑上看碟,教您电脑怎么放光盘
  9. 对日期,时间,年月日的处理
  10. 微信营销的7个重要流程