This commit is contained in:
周伟
2022-05-11 22:56:52 +08:00
parent d9c5ffd627
commit 85b6063789
2559 changed files with 545 additions and 30 deletions

View File

@@ -12,7 +12,9 @@
<!-- theme css & js -->
<meta name="generator" content="Hexo 4.2.0">
</head>
<body>
<div class="book-container">
<div class="book-sidebar">
<div class="book-brand">
@@ -25,61 +27,86 @@
<ul class="uncollapsible">
<li><a href="/" class="current-tab">首页</a></li>
</ul>
<ul class="uncollapsible">
<li><a href="../">上一级</a></li>
</ul>
<ul class="uncollapsible">
<li>
<a href="/极客时间/Java基础36讲.md.html">Java基础36讲.md.html</a>
</li>
<li>
<a href="/极客时间/Java错误示例100讲.md.html">Java错误示例100讲.md.html</a>
</li>
<li>
<a href="/极客时间/Linux性能优化.md.html">Linux性能优化.md.html</a>
</li>
<li>
<a href="/极客时间/MySQL实战45讲.md.html">MySQL实战45讲.md.html</a>
</li>
<li>
<a href="/极客时间/从0开始学微服务.md.html">从0开始学微服务.md.html</a>
</li>
<li>
<a href="/极客时间/代码精进之路.md.html">代码精进之路.md.html</a>
</li>
<li>
<a class="current-tab" href="/极客时间/持续交付36讲.md.html">持续交付36讲.md.html</a>
</li>
<li>
<a href="/极客时间/程序员进阶攻略.md.html">程序员进阶攻略.md.html</a>
</li>
<li>
<a href="/极客时间/趣谈网络协议.md.html">趣谈网络协议.md.html</a>
</li>
</ul>
</div>
</div>
<div class="sidebar-toggle" onclick="sidebar_toggle()" onmouseover="add_inner()" onmouseleave="remove_inner()">
<div class="sidebar-toggle-inner"></div>
</div>
<script>
function add_inner() {
let inner = document.querySelector('.sidebar-toggle-inner')
inner.classList.add('show')
}
function remove_inner() {
let inner = document.querySelector('.sidebar-toggle-inner')
inner.classList.remove('show')
}
function sidebar_toggle() {
let sidebar_toggle = document.querySelector('.sidebar-toggle')
let sidebar = document.querySelector('.book-sidebar')
@@ -95,6 +122,7 @@
}
}
function open_sidebar() {
let sidebar = document.querySelector('.book-sidebar')
let overlay = document.querySelector('.off-canvas-overlay')
@@ -107,7 +135,9 @@ function hide_canvas() {
sidebar.classList.remove('show')
overlay.classList.remove('show')
}
</script>
<div class="off-canvas-content">
<div class="columns">
<div class="column col-12 col-lg-12">
@@ -735,6 +765,7 @@ $ git reset --hard C3 的 HASH 值
</code></pre>
<p>如果 feature-x 已经 push 到远端代码平台了,则远端分支也需要回滚:</p>
<pre><code>$ git push -f origin feature-x
</code></pre>
<p><strong>第二,集成分支上线前回滚</strong></p>
<p><img src="http://lean.lianglianglee.com/%E6%9E%81%E5%AE%A2%E6%97%B6%E9%97%B4/assets/d9947d8f6f7f746414a18b81be5f3733.png" alt="img" /></p>
@@ -1094,15 +1125,19 @@ $ git push origin master # 远端的 master 也被回滚。
<p><img src="assets/9a95af6dfe491b66076f7085c5a64b6f.png" alt="img" /></p>
<p>这段代码定义了 dev 和 prod 两个 profile没有定义任何其他配置实际使用中可按需定义任何配置并且使用了 echo 插件验证 profile 是否生效,通过运行。</p>
<pre><code>maven initialize Pdev
</code></pre>
<p></p>
<pre><code>maven initialize Pprod
</code></pre>
<p>然后,可以看到输出:</p>
<pre><code>[INFO] profiles.active = dev
</code></pre>
<p></p>
<pre><code>[INFO] profiles.active = prod
</code></pre>
<p>其中, dev 是默认激活的,也就是说如果不填写任何 P 参数,或者 P 参数不为 dev 或者 prod都会使用 dev 作为默认的 profile。</p>
<p>这样在代码构建时,你就可以根据具体需要选择对应的 profile 了。</p>
@@ -1753,6 +1788,7 @@ ADD java /usr/local/java
<p>在上一篇文章《容器镜像构建的那些事儿》中,我介绍了构建镜像一个很重要的原则是:镜像要尽可能得小巧精简,因此我们没有在镜像中为用户安装太多的软件。但是,很多时候用户可能需要这些软件,于是我们就在平台上提供了环境选项的功能。</p>
<p>比如,很多用户需要用到 Wget 软件,于是我们就在交付平台上提供了一个 “安装 Wget ” 的环境选项。其实,这个环境选项对应的就是一条 shell 命令:</p>
<pre><code>yum install wget -y
</code></pre>
<p>如果某次发布时,用户需要这个工具,可以勾选这个选项,那么就可以在构建镜像时作为参数传给构建系统。如果搭建系统判断出有这个参数,就将会其插入到规范的 Dockerfile 中,从而这个参数就可以被打到容器内部。</p>
<p>环境选项虽然好用,但是只适合一些简单的需求,比如安装一些软件、更改一些配置等。而对一些复杂的需求,则需要创建一个叫作<strong>服务集市</strong>的功能。举个例子:</p>
@@ -2406,6 +2442,7 @@ ADD java /usr/local/java
<p>图 4 IDE 插件安装</p>
<p>第四步:如果 SonarLint 的检查规则不能满足开发环境的要求,你可以执行相关的 mvn 命令,把检查结果吐到 Sonar 服务器上再看检查结果,命令如下:</p>
<pre><code>mvn org.sonarsource.scanner.maven:sonar-maven-plugin:3.2:sonar -f ./pom.xml -Dsonar.host.url=sonar 服务器地址 -Dsonar.login= 账号名称 -Dsonar.password= 账号密码 -Dsonar.profile= 检查规则的集合 -Dsonar.global.exclusions= 排除哪些文件 -Dsonar.branch= 检查的分支
</code></pre>
<p>第五步:在 GitLab 的 Merge Request 中增加 Sonar 静态检查的环节,包括检查状态和结果等。</p>
<p><img src="assets/8dae6234f5003bee410fca4ae9dfb3ca.png" alt="img" /></p>
@@ -3278,6 +3315,7 @@ sudo EXTERNAL_URL=&quot;http://192.168.0.101&quot; yum install -y gitlab-ee
<li>配置文件 /etc/gitlab/gitlab.rb包含所有 GitLab 的相关配置。邮件服务器、LDAP 账号验证,以及数据库缓存等配置,统一在这个配置文件中进行修改。 比如,你想要修改 GitLab 的外部域名时, 可以通过一条指令修改 gitlab.rb 文件:</li>
</ol>
<pre><code>external_url 'http://newhost.com'
</code></pre>
<p>然后,执行 gitlab-ctl reconfigure 重启配置 GitLab 即可。</p>
<p>关于 GitLab 更详细的配置,你可以参考<a href="https://docs.gitlab.com/omnibus/README.html#installation-and-configuration-using-omnibus-package">官方文档</a></p>
@@ -3485,6 +3523,7 @@ end
<li>安装 Java 环境</li>
</ol>
<pre><code> yum install java-1.8.0-openjdk-devel
</code></pre>
<ol>
<li>更新 rpm 源,并安装 Jenkins 2.138</li>
@@ -3668,6 +3707,7 @@ yum install jenkins
<h3><strong>Ansible 安装</strong></h3>
<p>对于 Ansible 环境的准备,我推荐使用 pip 的方式安装。</p>
<pre><code>sudo pip install Ansible
</code></pre>
<p>安装完之后, 我们可以简单测试一下:</p>
<ol>
@@ -3680,7 +3720,8 @@ yum install jenkins
<ol>
<li>打通本机和测试机的 SSH 访问:</li>
</ol>
<pre><code>$ ssh-copy-id <a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="593d3c293536203c2b1935363a383531362a2d">[email&#160;protected]</a>
<pre><code>$ ssh-copy-id <a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="402425302c2f392532002c2f23212c282f3334">[email&#160;protected]</a>
</code></pre>
<ol>
<li>尝试远程访问主机 10.1.77.79</li>
@@ -3923,21 +3964,25 @@ yum install jenkins
<a href="/极客时间/程序员进阶攻略.md.html">下一页</a>
</div>
</div>
</div>
</div>
</div>
</div>
<a class="off-canvas-overlay" onclick="hide_canvas()"></a>
</div>
<script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script><script defer src="https://static.cloudflareinsights.com/beacon.min.js/v652eace1692a40cfa3763df669d7439c1639079717194" integrity="sha512-Gi7xpJR8tSkrpF7aordPZQlW2DLtzUlZcumS8dMQjwDHEnw9I7ZLyiOj/6tZStRBGtGgN6ceN6cMH8z7etPGlw==" data-cf-beacon='{"rayId":"709980b7fd2e8b66","version":"2021.12.0","r":1,"token":"1f5d475227ce4f0089a7cff1ab17c0f5","si":100}' crossorigin="anonymous"></script>
<script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script><script defer src="https://static.cloudflareinsights.com/beacon.min.js/v652eace1692a40cfa3763df669d7439c1639079717194" integrity="sha512-Gi7xpJR8tSkrpF7aordPZQlW2DLtzUlZcumS8dMQjwDHEnw9I7ZLyiOj/6tZStRBGtGgN6ceN6cMH8z7etPGlw==" data-cf-beacon='{"rayId":"709ba3bb2beafbdc","version":"2021.12.0","r":1,"token":"1f5d475227ce4f0089a7cff1ab17c0f5","si":100}' crossorigin="anonymous"></script>
</body>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-NPSEEVD756"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() {
dataLayer.push(arguments);
}
gtag('js', new Date());
gtag('config', 'G-NPSEEVD756');
var path = window.location.pathname
@@ -3951,12 +3996,14 @@ yum install jenkins
} else {
setCookie("lastPath", path)
}
function setCookie(cname, cvalue) {
var d = new Date();
d.setTime(d.getTime() + (180 * 24 * 60 * 60 * 1000));
var expires = "expires=" + d.toGMTString();
document.cookie = cname + "=" + cvalue + "; " + expires + ";path = /";
}
function getCookie(cname) {
var name = cname + "=";
var ca = document.cookie.split(';');
@@ -3966,5 +4013,7 @@ yum install jenkins
}
return "";
}
</script>
</html>