zoukankan      html  css  js  c++  java
  • Ansible进阶之企业级应用

    1.环境

    cat /etc/hosts
    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    10.0.0.50  ansible-master
    10.0.0.51  ansible-node1
    10.0.0.52  ansible-node2
    10.0.0.53  ansible-node3
    ssh-keygen -t rsa -P ""
    ssh-copy-id -i ~/.ssh/id_rsa.pub root@ansible-node1
    ssh-copy-id -i ~/.ssh/id_rsa.pub root@ansible-node2
    ssh-copy-id -i ~/.ssh/id_rsa.pub root@ansible-node3
    cat /etc/ansible/hosts
    [lb]
    ansible-node1
    
    [tcsrvs]
    ansible-node2
    ansible-node3
    # 创建角色目录
    mkdir -pv /etc/ansible/roles/{nginx,tomcat}/{files,templetes,tasks,vars,handlers,meta,default}
    # 配置文件
    cat /etc/ansible/roles/nginx/tasks/main.yml
    - name: install nginx
      yum: name=nginx state=latest
      when: ansible_os_family == "RedHat"
    - name: install conf
      copy: src=lb.conf dest=/etc/nginx/conf.d/
      tags: conf
      notify: restart nginx
    - name: start nginx
      service: name=nginx state=started enabled=true
    
    cat /etc/ansible/roles/nginx/handlers/main.yml
    - name: restart nginx
      service: name=nginx state=restarted
    
    cat /etc/ansible/roles/nginx/files/lb.conf
    upstream tcsrvs {
            server ansible-node2:8080;
            server ansible-node3:8080;
    }
    
    server {
            listen 80;
            server_name www.ilinux.net;
            location / {
                    proxy_pass http://tcsrvs;
            }
    }
    
    cat /etc/ansible/playbooks/nginx-tomcat.yml
    - hosts: lb
      remote_user: root
      roles:
      - nginx
    - hosts: tcsrvs
      remote_user: root
      roles:
      - {role: jdk,version: 1.8.0}
      - tomcat
    
    ansible-playbook -C nginx.yaml
    

    2.ansible以roles的方式安装tomcat

    cat /etc/ansible/roles/tomcat/tasks/main.yml
    - name: install package
      yum: name={{ item }} state=latest
      with_item:
      - tomcat
      - tomcat-admin-webapps
      - tomcat-webapps
      - tomcat-docs-webapp
      when: ansible_os_family == "RedHat"
    - name: start tomcat
      service: name=tomcat state=started enabled=true
    
    # 安装jdk
    mkdir -pv /etc/ansible/roles/jdk/{files,templetes,tasks,vars,handlers,meta,default}
    # 系统安装的openjdk不用手动提供java家目录
    cat /etc/ansible/roles/jdk/tasks/main.yml
    - name: install openjdk
      yum: name=java-{{ version }}-openjdk-devel state=latest
    - name: create env file
      copy: src=java.sh dest=/etc/profile.d/
    
    cat files/java.sh
    export JAVA_HOME=/usr
    
  • 相关阅读:
    字符串匹配之朴素匹配
    XSS的攻击原理
    使用metasploit收集邮箱
    C++实现折半插入排序
    C++插入排序实现
    Java中的NIO
    Hashtable和HashMap区别(面试)
    面向对象:封装(一):构造函数;类的主方法;权限修饰符;对象的创建
    switch多分支语句
    递归和字母数字生成随机数
  • 原文地址:https://www.cnblogs.com/fawaikuangtu123/p/10890028.html
Copyright © 2011-2022 走看看