Roles介绍

        roles基于一个已知的文件结构来自动加载tasks handlers templates vars files

        roles下的目录里面只能写相关的tasks或者handlers。然后再通过playbook文件来调用相关roles 

        创建角色的两种方式
              1.手动创建相关目录
                  mkdir redis/{tasks,handlers,templates,vars,files} -pv
               2.ansible-galaxy init redis roles
                  redis是角色名称

       ansible基础语法介绍

       ansible基础语法介绍

ansible galaxy 介绍

       galaxy是一个免费网站,类似于github网站,网站上基本都是共享的roles角色。从Galaxy下载roles角色是快速启动自动化项目方式之一

       ansible提供了ansible-galaxy命令行工具,可以使用init search install remove等操作

      1.ansible-galaxy search nginx
      2.ansible-galaxy install nginx
         把角色安装包下载到/root/.ansible/roles目录下

ansible角色调试

     ansible基础语法介绍

    ansible-playbook -i hosts site.yml -vvv

       ansible基础语法介绍

ansible playbook输出所有节点信息

     - name: "get all nodes status"
       shell: "supervisorctl status"
       register: result
       tags: checknodes

   - name: "show all node status"
    debug:
       msg: "{{ result }}"
    tags: checknodes

ansible命令输出批量节点信息

      ansible只对hosts文件中的[group]进行分组操作,没有角色这个对象

      ansible -i hosts all -m shell -a "supervisorctl status"    -i hosts all 在hosts文件中必须定义一个all组

     ansible基础语法介绍

 

     site.yml是ansible-playbook命令才会被定义.ansible命令只要定义hosts文件即可

     ansible基础语法介绍

     ansible-playbook -i hosts site.yml  这样就相当于在all的节点上执行命令

    ansible > hosts文件 > 具体节点

    ansible-playbook > site.yml > hosts文件 > 具体节点

  ansible模块同时管理多个service

       ansible基础语法介绍

        ansible基础语法介绍

       使用循环列表的指定服务名称方式启停服务

ansible拷贝整个目录下的文件

- name: "copy the flink-lib jars"
  copy: src=../../common/packages/flink/lib/  dest="{{ taishi_dir }}/tmp/flinklib/" owner={{ taishi_user }} group={{ taishi_user }} mode=0755
  tags: flink-master-jar

- name: show the jars in the lib 
  command: ls {{ taishi_dir }}/tmp/flinklib/
  register: dir_out 
  tags: flink-master-jar

- name: "upload the flink-lib jars" 
  copy: src=/{{ taishi_dir }}/tmp/flinklib/{{item}} dest={{ taishi_dir }}/flink/flink-1.12.2/lib/{{item}} owner={{ taishi_user }} group={{ taishi_user }} mode=0755
  with_items: "{{ dir_out.stdout_lines }}"
  tags: flink-master-jar
上传整个目录下子文件

相关文章: