Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/chusiang/continuous-delivery-workshop
A simple Continuous Delivery Lab, mirror from GitLab
https://github.com/chusiang/continuous-delivery-workshop
ansible continuous-delivery devops docker gitlab-ci lab workshop
Last synced: 30 days ago
JSON representation
A simple Continuous Delivery Lab, mirror from GitLab
- Host: GitHub
- URL: https://github.com/chusiang/continuous-delivery-workshop
- Owner: chusiang
- License: mit
- Created: 2017-11-04T04:00:58.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2017-11-26T16:57:51.000Z (about 7 years ago)
- Last Synced: 2024-11-07T09:55:01.459Z (3 months ago)
- Topics: ansible, continuous-delivery, devops, docker, gitlab-ci, lab, workshop
- Language: Makefile
- Homepage: https://gitlab.com/chusiang/continuous-delivery-workshop
- Size: 217 KB
- Stars: 4
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Continuous Delivery Workshop with Ansible x GitLab CI
[![build status](https://gitlab.com/chusiang/continuous-delivery-workshop/badges/master/build.svg)](https://gitlab.com/chusiang/continuous-delivery-workshop/commits/master)
This is a **Continuous Delivery Lab**, and it's fork from [@chusiang/coscup2017-cd-demo](https://gitlab.com/chusiang/coscup2017-cd-demo).
## Overall
![The overall of continuous delivery workshop](image/the_cd_workshop_overall.jpg)
Loop (Engineer -> Git server -> CI server -> Build stage -> Deploy stage -> Test stage -> Release stage -> Customer).## The Pipeline
### Build stage
Package the htdocs to deb file.
1. Architecture of deb file.
```
$ tree penguin-htdocs
penguin-htdocs
├── DEBIAN
│ └── control
└── var
└── www
└── html
└── index.html4 directories, 2 files
```1. Build the deb file on GitLab CI.
```
$ dpkg -b penguin-htdocs
```### Deploy stage
Deploy to staging node, and release to production node with `setup.yml` playbook.
```
$ ansible-playbook deploy.yml
```### Test stage
Only test the staging with `test.yml` playbook on localhost.
```
$ ansible-playbook test.yml
```### Release stage
Release to production node with `setup.yml` playbook, too.
```
$ ansible-playbook -i production deploy.yml
```## Reference
### How to build the deb package.
1. [Deb Package 套件封裝教學 | Soul & Shell Blog](https://blog.toright.com/posts/4434/deb-package-%E5%A5%97%E4%BB%B6%E5%B0%81%E8%A3%9D%E6%95%99%E5%AD%B8.html)
1. [如何製作「deb 檔 (Debian Package)」 | Ubuntu Basic Skill](https://samwhelp.github.io/book-ubuntu-basic-skill/book/content/package/how-to-build-package.html)### How to use the Ansible.
1. [《現代 IT 人一定要知道的 Ansible 自動化組態技巧》.GitHub](https://github.com/chusiang/automate-with-ansible)
### Reference slides
1. [Git and Github basic with SourceTree](http://note.drx.tw/2015/05/git-and-github-basic-with-sourcetree.html)
1. [現代 IT 人一定要知道的 Ansible 自動化組態技巧 (3/e)](http://note.drx.tw/2017/03/automate-with-ansible-basic-3e.html)
1. [前端工程師一定要知道的 Docker 虛擬化容器技巧](http://note.drx.tw/2016/07/virtualization-with-docker-container-basic-for-f2e.html)
1. [DevOps 人一定要知道的 Ansible & GitLab CI 持續交付技巧](http://note.drx.tw/2017/08/continuous-delivery-with-ansible-x-gitlab-ci.html)## License
Copyright (c) [chusiang][chusiang] from 2017 under the MIT license.
[chusiang]: https://github.com/chusiang/