第三十九节课综合架构批量管理篇

  1. 剧本编写扩展功能

    1. 剧本变量设置功能 3种方式

    2. 剧本变量注册功能 在剧本执行过程中,显示指定输出信息 register

      • hosts: 172.16.1.41
        tasks:
        • name: boot crond server
          service: name=crond state=started
        • name: check server process
          shell: ps -ef|grep cron
          register: oldboy
        • name: show server status info
          debug: msg={{ oldboy.stdout_lines }}
    3. 剧本编写判断功能 根据条件信息执行任务 when 条件变量信息(setup) ==/!= 指定信息

    4. 剧本编写循环功能
      编写循环功能:
      编写方式一: 列表方式设置循环

      • hosts: 172.16.1.41
        tasks:
        • name: install software
          yum: name={{ item }} state=installed
          with_items:
          • rsync
          • nfs-utils
          • telnet-server

      编写方式二: 字典方式设置循环

      • hosts: 172.16.1.41
        tasks:
        • name: create user
          user: name={{ item.old01 }} uid={{ item.old02 }} shell={{ item.old03 }}
          with_items:
          • {old01: 'oldboy01', old02: '5001', old03: '/sbin/nologin'}
          • {old01: 'oldboy02', old02: '5002', old03: '/sbin/nologin'}
    5. 剧本忽略错误功能 剧本中shell模块使用时错误问题
      [root@m01 ansible_playbook]# cat test_忽略错误配置.yml

      • hosts: 172.16.1.41
        tasks:
        • name: install software
          shell: yum install -y htop
        • name: create user
          shell: useradd oldboy
          ignore_errors: yes 开启忽略错误功能
        • name: boot server
          shell: systemctl start rsyncd
          =====================================================
          补充: 使用shell万能模块会出现的问题:
      1. 实现批量管理操作会更加麻烦
      2. 实现剧本任务功能,不具有幂等性
        =====================================================
    6. 剧本编写标签功能 调式剧本

      • name: create user
        user: name=rsync shell=/sbin/nologin create_home=no
        tags: oldboy01
        ansible-playbook test_标签功能配置.yml -t oldboy01 --- 只执行标记任务
        ansible-playbook test_标签功能配置.yml --skip-tags oldboy01 --- 跳过标记任务
    7. 剧本提高执行效率
      取消剧本收集主机信息功能

      • hosts: 172.16.1.41
        gather_facts: no --- 提升剧本执行效率
        tasks:
        PS: 取消了收集信息功能, 判断功能也无法使用了
        ==============================================================
        总结: 剧本执行慢的原因
      1. SSH远程连接优化没有配置 关闭认证功能 关闭DNS反向解析功能
      2. yum下面软件慢 使用本地yum仓库
      3. 剧本执行收集信息慢
      4. 剧本执行过程必须完整 yum -- 慢 -- ctrl+c -- yum lockfile is 调用
        ==============================================================
    8. 剧本触发器功能配置
      [root@m01 ansible_playbook]# cat test_触发功能配置.yml

      • hosts: 172.16.1.41
        tasks:

        • name: push config file
          copy: src=/tmp/rsyncd.conf dest=/etc/
          notify: rsync_restart
        • name: boot server
          service: name=rsyncd state=started

        handlers:

        • name: rsync_restart
          service: name=rsyncd state=restarted
          PS: 触发器任务会在所有任务执行完毕之后才执行

    剧本编写扩展功能: https://docs.ansible.com/ansible/latest/user_guide/playbooks.html

  1. ansible剧本整合功能
    方式一:include_tasks: f1.yml

    • hosts: all
      remote_user: root
      tasks:
      • include_tasks: f1.yml
      • include_tasks: f2.yml

    方式二:include: f1.yml

    • include:f1.yml
    • include:f2.yml

    方式三:- import_playbook: 推荐
    [root@m01 ansible-playbook]# cat main.yml

    • import_playbook: base.yml
    • import_playbook: rsync.yml
    • import_playbook: nfs.yml
编写多个服务剧本:
rsync
nfs

第一个历程: 编写主机配置文件
vim /etc/ansible/hosts
[oldboy]
172.16.1.7
172.16.1.31
172.16.1.41

第二个历程: 创建存储分发文件目录
# ll file/
总用量 12
-rw-r--r-- 1 root root  29 8月  26 18:23 exports
-rw-r--r-- 1 root root 406 8月  26 17:59 rsyncd.conf
-rw-r--r-- 1 root root  23 8月  26 18:23 rsync.password

第三个历程: 编写一键化部署服务剧本:
rsync_auto.yml
省略

nfs_auto.yml

第四个历程: 将多个剧本进行整合
  1. 课程知识总结
    1. ansible剧本编写功能
      a 剧本变量设置功能 3种方法
      b 剧本注册功能设置
      c 剧本判断功能设置 setup 收集主机信息
      d 剧本循环功能设置 2中方法 列表/字典
      e 剧本忽略错误功能
      f 剧本标签设置功能 -t --skip-tags
      g 剧本禁止收集功能 加快剧本执行效率
      h 剧本触发功能配置
    2. ansible剧本整合方法
      编写服务一键化剧本步骤: 配置主机清单--配置目录环境---编写剧本---测试---整合

作业:

  1. 完成nfs服务一键化部署 有剧本扩展功能

  2. 完成sersync服务一键化部署 有剧本扩展功能

  3. 预习roles角色目录配置 http协议-->nginx网站服务
    web01 web02 web03 --- 安装部署好nginx
    第一个历程: 编辑yum源文件
    vim /etc/yum.repos.d/nginx.repo
    [nginx-stable]
    name=nginx stable repo
    baseurl=http://nginx.org/packages/centos/releasever/basearch/
    gpgcheck=1
    enabled=1
    gpgkey=https://nginx.org/keys/nginx_signing.key

    第二个历程: 清楚yum缓存 下载nginx软件
    yum clean all
    yum install -y nginx

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 210,978评论 6 490
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 89,954评论 2 384
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 156,623评论 0 345
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,324评论 1 282
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,390评论 5 384
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,741评论 1 289
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,892评论 3 405
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,655评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,104评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,451评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,569评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,254评论 4 328
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,834评论 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,725评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,950评论 1 264
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,260评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,446评论 2 348

推荐阅读更多精彩内容