1. Gitlab搭建與流程使用
1. GitLab主要服務構成
1. nginx服務器
2. Gitlab-workhorse輕量級的反向代理服務器
3. Gitlab-shell用於處理git命令和修改公鑰列表
4. Logrotate日志文件管理工具
5. Postgresql數據庫
6. Redis服務器
2. Gitlab的工作流程
1. 在Gitlab的web界面創建項目倉庫,在客戶端克隆該項目
2. 創建項目分支(Gitlab服務器)
3. 編寫代碼並提交至該分支(客戶端)
4. 推送該項目分支至遠程Gitlab服務器(客戶端)
5. 進行代碼檢查並提交至Master主分支合並申請
6. 項目負責人審查代碼並確認合並申請
3. GitLab的安裝配置管理
1. 關閉防火牆
2. 關閉selinux
3. 安裝Omnibus Gitlab-ce package
1. 安裝Gitlab組件
yum install curl policycoreutils openssh-server openssh-clients postfix -y
2. 配置YUM倉庫
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
3. 啟動postfix郵件服務
centos7: systemctl start postfix && systemctl enable postfix
centos6: /etc/init.d/postfix start
4. 安裝Gitlab-ce社區版本
yum install -y gitlab-ce
5. Omnibus Gitlab等相關配置初始化並完成安裝
1. 證書創建與配置加載
2. Nginx SSL代理服務配置
3. 初始化Gitlab相關服務並完成安裝
4. gitlab設置
5. gitlab應用
Gitlab后台管理
開發視角的Gitlab
普通開發人員創建分支,申請給領導合並分支
領導合並分支
運維視角的Gitlab
用戶管理
權限管理
2. Ansible環境配置與Playbook編寫規范
1. 安裝模式
1. yum包管理安裝
yum -y install ansible
2. git源代碼安裝(推薦)
git clone https://github.com/ansible/ansible.git
3. ansible2.5+python3.6安裝步驟
1. 預先安裝python3.6
wget https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tar.xz
tar xf Python-3.6.5.tar.xz
cd python-3.6.5
yum install gcc gcc-c-++ -y
yum -y install zlib*
./configure --prefix=/usr/local --with-ssl --with-ensurepip=install --enable-shared LDFLAGS="-Wl,-rpath /usr/local/lib"
make && make altinstall
2. 安裝virtualenv
pip install virtualenv
pip --trusted-host pypi.python.org install virtualenv
報錯解決方法:https://blog.csdn.net/bernieyangmh/article/details/77334667
3. 創建ansible系統賬戶並安裝python3.6版本virtualenv實例
useradd deploy && su - deploy
virtualenv -p /usr/local/bin/python3.6 .py3-a2.5-env
yum install -y git nss curl
4. git源代碼安裝ansible2.5
cd /home/deploy/.py3-a2.5-env
git clone https://github.com/ansible/ansible.git
5. 加載python3.6 virtualenv環境
source /home/deploy/.py3-a2.5-env/bin/activate
6. 在virtualenv環境下,安裝ansible依賴包
pip install paramiko PyYAML jinja2
cd ansible
git checkout stable-2.5
7. 在python3.6虛擬環境下加載ansible2.5
source /home/deploy/.py3-a2.5-env/ansible/hacking/env-setup -q
8. 驗證ansible2.5
ansible --version
4. ansible playbooks入門和編寫規范
1. 每次部署都要先加載virualenv環境和ansible2.5
su - deploy
source /home/deploy/.py3-a2.5-env/bin/activate
source /home/deploy/.py3-a2.5-env/ansible/hacking/env-setup -q
2. 創建playbooks
mkdir test_playbooks
cd test_playbooks/
mkdir inventory roles
cd inventory/
vi testenv
內容如下:
[testservers] test.zhen.com [testservers:vars] server_name=test.zhen.com user=root output=/root/test.txt
cd roles/
mkdir -p testbox/tasks
cd testbox/tasks
vi main.yml
- name: Print server name and user to remote testbox shell: "echo 'Currently {{ user }} is logining {{ server_name }}' > {{ output }}"
cd /home/deploy/test_playbooks
vi deploy.yml
- hosts: "testservers" gather_facts: true remote_user: root roles: - testbox
tree一下/home/deploy/test_playbooks,創建的各級目錄如下:
在當前用戶deploy下,創建公鑰
ssh-keygen -t rsa
ssh-copy-id -i /home/deploy/.ssh/id_rsa.pub root@test.zhen.com
ssh-copy-id -i /home/zhangshaohua1510/.ssh/id_rsa.pub '-p 11984 zhangshaohua1510@192.168.1.44'
執行playbook
ansible-playbook -i inventory/testenv ./deploy.yml
2. ansible playbooks常用模塊
1. File模塊
在目標主機創建文件或目錄,並賦予其系統權限
2. Copy模塊
實現ansible服務端到目標主機的文件傳送
3. Stat模塊
獲取遠程文件狀態信息
4. Debug模塊
打印語句到ansible執行輸出
5. Command/Shell模塊
用來執行Linux目標主機命令行
6. Template模塊
實現ansible服務端到目標主機的jinja2模板傳送
7. Packaging模塊
調用目標主機系統包管理工具(yum,apt)進行安裝
8. Service模塊
管理目標主機系統服務
3. Jenkins環境構建與任務編寫
1. jenkins安裝配置管理
1. 添加yum倉庫源
wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.repo
rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key
2. 保證系統java版本為8.0或8.0以上
yum install java -y
java -version
3. 關閉系統防火牆
4. 關閉selinux
5. 安裝jenkins
yum install jenkins -y
6. 創建jenkins系統用戶
useradd deploy
7. 更改jenkins啟動用戶與端口
vi /etc/sysconfig/jenkins
JENKINS_USER=deploy
JENKINS_PORT=8081
chown -R deploy.deploy /var/lib/jenkins
chown -R deploy.deploy /var/log/jenkins
chown -R deploy.deploy /var/cache/jenkins
8. 啟動jenkins
systemctl start jenkins
9. 訪問http://172.168.1.191:8081
初始化admin密碼
復制/var/lib/jenkins/secrets/initialAdminPassword文件的內容
10. 出現錯誤
解決方法:
修改/var/lib/jenkins/hudson.model.UpdateCenter.xml
該文件為jenkins下載插件的源地址,改地址默認jenkins默認為:https://updates.jenkins.io/update-center.json,就是因為https的問題,此處我們將其改為http即可,之后重啟jenkins服務即可。
其他國內備用地址(也可以選擇使用):
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
http://mirror.esuni.jp/jenkins/updates/update-center.json
重啟jenkins。
1) 修改/var/lib/jenkins/updates/default.json
jenkins在下載插件之前會先檢查網絡連接,其會讀取這個文件中的網址。默認是:
訪問谷歌,這就很坑了,服務器網絡又不能FQ,肯定監測失敗呀,不得不說jenkins的開發者腦子銹了,所以將圖下的google改為www.baidu.com即可,更改完重啟服務。
2. jenkins的job任務
1. Freestyle Job
1. 需在頁面添加模塊配置項與參數完成配置
2. 每個job僅能實現一個開發功能
3. 無法將配置代碼化,不利於job配置遷移與版本控制
2. pipeline Job
1. 所有模塊,參數配置都可以體現為一個pipeline腳本
2. 可以定義多個stage構建一個管道工作集
3. 所有配置代碼化,方便job配置遷移與版本控制
4. 需要pipeline腳本語法基礎
3. job環境准備
4. freestyle job
1.
4. Freestyle任務實現靜態網站部署交付
5. Pipeline任務實現wordprees部署交付