jenkins-ansible-playbook发布模式

 

 

 

 

 

 

 

 

 

- hosts: webservers
  vars:
    - work_dir: /opt
    - web_name: web
    - web_backend: web_cluster
    - service_port: 80
  serial: 1 #控制每次仅操作一个主机
  tasks:
#获取一个时间 年月日时分{{ date.stdout}}
    - name: Get System Time
      shell:
        cmd: "echo $(date +%F_%H_%M)"
      register: date
      delegate_to: 127.0.0.1

#获取项目的工作目录{{ workspace.stdout }}
    - name: Get WorkSpace Work Path
      shell:
        cmd: "echo ${WORKSPACE}"
      register: workspace
      delegate_to: 127.0.0.1

#执行打包操作
    - name: Archive Workspace Code
      archive:
        path: "{{ workspace.stdout}}/*"
        dest: "{{ work_dir }}/{{ web_name }}_{{ date.stdout }}.tar.gz"
      delegate_to: 127.0.0.1
#下线节点(委派给lbservers)
    - name: offline Haproxy "{{ inventory_hostname }}"
      haproxy:
        state: disabled
        host: '{{ inventory_hostname }}'
        backend: "{{ web_backend }}"
        socket: /var/lib/haproxy/stats
      delegate_to: "{{ item }}"
      loop: "{{ groups['lbservers'] }}"
#关闭 Nginx server
    - name: Systemd Nginx Stoppend
      systemd:
        name: nginx
        state: stopped
#检测端口是否存活
    - name: Check Nginx Port
      wait_for:
        port: "{{ service_port}}"
        state: stopped
#为web集群创建站点目录 /opt/web-2022-02-04-09-42
    - name: Create Web Site Directory
      file:
        path: "{{ work_dir }}/{{ web_name }}_{{ date.stdout}}"
        state: directory
#解压目录
    - name: Unarchive Web Code
      unarchive:
        src: "{{ work_dir }}/{{web_name}}_{{ date.stdout }}.tar.gz"
        dest: "{{ work_dir }}/{{web_name}}_{{ date.stdout }}"
#删除软连接
    - name: Unlink Path
      file:
        path: "{{ work_dir }}/{{ web_name }}"
        state: absent
#重新创建软连接
    - name: Create Links Path
      file:
        src: "{{ work_dir }}/{{ web_name }}_{{ date.stdout }}"
        dest: "{{ work_dir }}/{{ web_name}}"
        state: link
#启动Nginx Server
    - name: Systemd Nginx Started
      systemd:
        name: nginx
        state: started
#检测端口是否存活
    - name: Check Nginx Port
      wait_for:
        port: "{{ service_port }}"
#上线节点(委派给lbservers)
    - name: online Haproxy "{{ inventory_hostname }}"
      haproxy:
        state: enabled
        host: '{{ inventory_hostname }}'
        backend: "{{ web_backend }}"
        socket: /var/lib/haproxy/stats
      delegate_to: "{{ item }}"
      loop: "{{ groups['lbservers'] }}"

 

 

 

 

  

posted @ 2022-02-04 10:23  NeilyoX  阅读(130)  评论(0)    收藏  举报