返回

像专家一样用 Ansible 自动化 Ambari 部署

闲谈

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

前言

本人指导,Mr.Lu_1实践完成

一、业务场景

  • 大规模集群(几十上百台服务器)搭建ambari,频繁更换登录服务器操作不便并且容易出现操作失误
  • 离线部署场景,没有外网无法联网

二、解决方案

  • 基于ansible构建自动化离线部署脚本

三、实施步骤

  1. 环境准备

    • 操作系统 :CentOS 7
    • Ansible :2.9.0
    • Ambari :2.7.5
    • Python :3.6.8
  2. 安装 Ansible

    yum install ansible
    
  3. 下载 Ansible Ambari 角色

    ansible-galaxy install geerlingguy.ambari
    
  4. 创建 Ansible playbook

    ---
    - hosts: all
      become: true
      tasks:
        - name: Install Ambari prerequisites
          yum:
            name: ['java-1.8.0-openjdk', 'ambari-server', 'ambari-agent']
            state: present
        - name: Configure Ambari server
          ambari_server:
            hostname: "localhost"
            server_port: 8080
            use_existing_java: true
        - name: Start Ambari server
          service:
            name: ambari-server
            state: started
        - name: Create Ambari cluster
          ambari_cluster:
            name: "my-cluster"
            version: "2.7.5"
            services: ["HDFS", "YARN", "HIVE"]
            hosts:
              - "host1.example.com"
              - "host2.example.com"
              - "host3.example.com"
        - name: Install Ambari clients
          yum:
            name: ambari-clients
            state: present
    
  5. 运行 Ansible playbook

    ansible-playbook playbook.yml
    

四、自动化操作成果

  1. 实现 Ambari 的一键式安装
  2. 实现 Ambari 的一键式配置
  3. 实现 Ambari 的一键式管理

五、总结

通过 Ansible 自动化 Ambari 部署,可以极大地提高部署效率,降低运维成本,同时提高部署质量和稳定性,使 Ambari 的部署和管理更加轻松、便捷。