Skip to content
Snippets Groups Projects

Webserver

1 file
+ 237
0
Compare changes
  • Side-by-side
  • Inline
main.yaml 0 → 100644
+ 237
0
---
- name: check if packages exits
package_facts:
manager: auto
- name: 'install all the dependencies '
tags: always
become: yes
apt:
name: ['nodejs','npm']
state: latest
install_recommends: no
update_cache: yes
- debug:
msg: "node and npm installed"
- name: make sure the latest npm is installed
tags: 'node'
become: yes
npm:
name: npm
global: yes
state: latest
- name: install pm2 server
tags: 'pm2'
become: yes
npm:
name: pm2
global: yes
state: latest
- name: install react
tags: 'react'
become: yes
npm:
name: create-react-app
global: yes
state: present
- name: Checking folders
tags: 'volumes'
become: yes
stat:
path: "{{ item.mountpoint }}"
register: directory_stats
with_items:
- "{{ volumes }}"
- name: Create directory
tags: 'volumes'
become: yes
file:
path: "{{ item.item.mountpoint }}"
recurse: yes
state: directory
when: item.stat.exists == false
with_items:
- "{{ directory_stats.results }}"
- name: Mount device
tags: 'volumes'
become: yes
mount:
path: "{{ item.mountpoint }}"
src: "{{ item.device }}"
fstype: xfs
state: mounted
when: item.device is defined
with_items:
- "{{ volumes }}"
- name: traverse into the project directory.
become: yes
shell: cd
args:
chdir: /var/lib/react
register: dir_changed
- name: clone git repo
become: yes
git:
repo: https://github.com/advait22/react-server.git
dest: /var/lib/react
force: yes
- debug:
msg: 'git repo cloned'
when: dir_changed.rc == 0
- name: change working directory to the app
become: yes
shell: cd
args:
chdir: /var/lib/react/express_react_example
register: server
- name: install all the packages for server
become: yes
npm:
path: /var/lib/react/express_react_example/
name: install
- debug:
msg: 'inside server'
when: server.rc == 0
- name: install dependencies
become: yes
command: npm install --save express
- debug:
msg: 'Client express installed'
when: server.rc == 0
- name: change working directory to the client
become: yes
shell: cd
args:
chdir: /var/lib/react/express_react_example/client
register: client
- name: install dependencies
become: yes
npm:
path: /var/lib/react/express_react_example/client
name: install
- debug:
msg: 'Client Dependencies installed'
when: client.rc == 0
- name: Ansible check directory exists build in client.
stat:
path: /var/lib/react/express_react_example/client/build
register: files_to_delete
- name: delete previous build folder
become: yes
shell: rm -rf build
args:
chdir: /var/lib/react/express_react_example/client/
register: build_delete
- debug:
msg: "build deleted"
when: files_to_delete.stat.exists == true
###workaround for react js bug in build command
- name: delete dependencies on client
become: yes
shell: rm -rf node_modules
args:
chdir: /var/lib/react/express_react_example/client/
register: deleted_modules
- debug:
msg: 'Client Dependencies delete'
- name: clear npm cache
tags: 'clear cache'
become: yes
shell: npm cache clean --force
args:
chdir: /var/lib/react/express_react_example/client
register: cache_cleaned
when: deleted_modules.rc == 0
- name: install dependencies
become: yes
npm:
path: /var/lib/react/express_react_example/client
name: install
- debug:
msg: 'Client Dependencies installed'
when: cache_cleaned.rc == 0
- name: install react scripts
tags: 'react scripts'
become: yes
shell: npm install --save react-scripts@3.0.1 react react-dom
args:
chdir: /var/lib/react/express_react_example/client
register: react_scripts
when: cache_cleaned.rc == 0
#################################################################
- name : compile the new build
tags: build
become: yes
shell: npm run build
args:
chdir: /var/lib/react/express_react_example/client
- debug:
msg: 'new build successfull'
- name: Ansible check directory exists build in server.
stat:
path: /var/lib/react/express_react_example/build
register: files_to_delete_from_server
- name: delete previous build folder in server
become: yes
shell: rm -rf build
args:
chdir: /var/lib/react/express_react_example/
register: build_delete_server
- debug:
msg: "deleting old build from server"
when: files_to_delete_from_server.stat.exists == true
- name: copy new build to parent folder
become: yes
command: mv /var/lib/react/express_react_example/client/build /var/lib/react/express_react_example
register: build_copy
- debug:
msg: 'build copied'
when: build_delete_server.rc == 0
- name: stop all the running server
become: yes
command: pm2 stop all
register: stop_server
- debug:
msg: 'all servers stopped'
# when: build_copy.rc == 0
- name: start the server
become: yes
# command: node /var/lib/react/express_react_example/server.js &
command: pm2 start /var/lib/react/express_react_example/server.js
- debug:
msg: 'yayyyyyyyyyyy app is running'
# when: stop_server.rc == 0
\ No newline at end of file
Loading