DevOps
DevOps是development和operations的组合,也就是开发和运维的简写,主要用于提高企业高速交付应用程序和服务的能力。
DevOPs是针对企业中的研发/运维/测试人员的工作理念,强调整个组织的合作以及交付和基础设施变更的自动化,从而实现持续集成、持续部署和持续交付。
DevOPs平台:
- 代码托管:gitlab/svn
- 项目管理:jira/禅道/Teambition
- 运维平台:腾讯蓝鲸/自研平台
- 持续交付:jenkins+gitlab
DevOps优势:
- 速度:应用版本快速的迭代更新,以更好地适应不断变化的市场需求
- 快速交付:更快地将应用交付至生产环境
- 可靠性:保证应用交付的结果是成功的
- 规模:可以在大规模环境下可靠地交付应用
- 增强合作:建立适应DevOPs文化模式的团队,开发人员和运维、测试人员协同工作
- 安全性:在快速迭代的同时保证应用的质量
CI/CD
CI:continuous integration持续集成,多名开发者在开发不同功能代码的过程当中,可以频繁地将代码行合并到一起并且互相不影响工作
CD:continuous deployment持续部署,是基于某种工具或平台实现代码自动化构建、测试和部署到线上环境以实现交付高质量的产品
持续集成——git(分布式代码管理工具)
git优点:
- 可靠性,数据的上传和下载必须是安全的,一致的,所有行为都要进行验证,数据的变更通过不同的版本进行逻辑隔离
- 分布式,git的代码恢复不依赖于中央服务器,而是每个开发电脑都是一个本地仓库,可以用于代码提交和回滚(svn提交和回滚都需要连接中央服务器,如果通过公网访问将会很慢)
- 高效:git基于分布式的功能实现代码的快速提交与秒级回滚
github:基于git的公有代码仓库
gitlab:基于git的私有代码仓库
git安装
1.选择规格大的虚机,1c2g会卡死,可以看官网的规格建议。官网在国外,下载慢(700多M),选择清华源下载:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/(ce为社区版,ee为企业版)选择对应的系统和版本
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-13.7.3-ce.0.el7.x86_64.rpm yum -y local install gitlab-ce-13.7.3-ce.0.el7.x86_64.rpm
2.安装成功后会出现:
Thank you for installing GitLab!
GitLab was unable to detect a valid hostname for your instance.
Please configure a URL for your GitLab instance by setting `external_url`
configuration in /etc/gitlab/gitlab.rb file.
Then, you can start your GitLab instance by running the following command:
sudo gitlab-ctl reconfigure
For a comprehensive list of configuration options please see the Omnibus GitLab readme
https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md
Help us improve the installation experience, let us know how we did with a 1 minute survey:
https://gitlab.fra1.qualtrics.com/jfe/form/SV_6kVqZANThUQ1bZb?installation=omnibus&release=13-7
3.编辑/etc/gitlab/gitlab.rb配置gitlab访问url,可以配置域名或者IP(external_url 'http://xxxxx'),同时可以配置发邮件的邮箱。比如开发需要修改密码的时候能发邮件给他点链接自助修改密码,或者一些变动需要邮件通知到管理员的,可以在这里配置一下邮件服务器
# gitlab_rails['smtp_enable'] = true
# gitlab_rails['smtp_address'] = "smtp.server"
# gitlab_rails['smtp_port'] = 465
# gitlab_rails['smtp_user_name'] = "smtp user"
# gitlab_rails['smtp_password'] = "smtp password"
# gitlab_rails['smtp_domain'] = "example.com"
# gitlab_rails['smtp_authentication'] = "login"
# gitlab_rails['smtp_enable_starttls_auto'] = true
# gitlab_rails['smtp_tls'] = false
4.执行gitlab-ctl reconfigure,完成后,gitlab-ctl status看一下
常用命令(参考https://git-scm.com/book/en/v2)
- gitlab-ctl reconfigure 无论修改了gitlab什么配置,均需要执行一下
- gitlab-ctl stop/start/status/restart 停止/开启/查看状态/重启
- gitlab-ctl tail xx 查看xx组件日志
- git clone
下载一个项目和它的整个代码历史
- git config --list
显示当前的Git配置
- git config --global username/useremail
设置提交代码时的用户信息
- git add file/dir
添加指定文件/目录到暂存区
- git commit -m [message]
提交暂存区到仓库区
- git branch
列出所有本地分支
- git branch branch-name
新建一个分支,但依然停留在当前分支
- git checkout -b branch-name
新建一个分支,并切换到该分支
- git merge branch-name
合并指定分支到当前分支
- git log
显示当前分支的版本历史
- git pull url branch
取回远程仓库的变化,并与本地分支合并
- git push url branch
上传本地指定分支到远程仓库
- git reset HEAD branch/filename指定退回某一次提交的版本()
git reset 三种模式区别:
--hard 撤销工作区中所有未提交的修改内容,将暂存区与工作区都回到上一次版本,并删除之前的所有信息提交
--soft 会在重置时,保留工作目录和暂存区中的内容,并把重置 HEAD 所带来的新的差异放进暂存区
--mixed 为默认,可以不用带该参数,用于重置暂存区的文件与上一次的提交(commit)保持一致,工作区文件内容保持不变。