-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.xml
264 lines (241 loc) · 23.4 KB
/
index.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
<?xml-stylesheet href="/rss.xsl" type="text/xsl"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>道与术修行记</title>
<link>http://zzc.life/</link>
<description>Recent content on 道与术修行记</description>
<generator>Hugo -- gohugo.io</generator>
<language>zh-cn</language>
<lastBuildDate>Sun, 12 Dec 2021 00:00:00 +0000</lastBuildDate>
<atom:link href="http://zzc.life/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>离线环境下为CentOS 8 编译安装网卡驱动</title>
<link>http://zzc.life/posts/2021-12-12-%E7%A6%BB%E7%BA%BF%E7%8E%AF%E5%A2%83%E4%B8%8BCentOS%E5%AE%89%E8%A3%85%E7%BD%91%E5%8D%A1%E9%A9%B1%E5%8A%A8/</link>
<pubDate>Sun, 12 Dec 2021 00:00:00 +0000</pubDate>
<guid>http://zzc.life/posts/2021-12-12-%E7%A6%BB%E7%BA%BF%E7%8E%AF%E5%A2%83%E4%B8%8BCentOS%E5%AE%89%E8%A3%85%E7%BD%91%E5%8D%A1%E9%A9%B1%E5%8A%A8/</guid>
<description>道与术修行记 http://zzc.life/posts/2021-12-12-%E7%A6%BB%E7%BA%BF%E7%8E%AF%E5%A2%83%E4%B8%8BCentOS%E5%AE%89%E8%A3%85%E7%BD%91%E5%8D%A1%E9%A9%B1%E5%8A%A8/ -<h1 id="背景">背景</h1>
<p>最近, 自己组装了台主机, 默认的操作系统是windows 10, 自己烧了个CentOS 8, 安装了双系统 (中间遇到了不少问题, 有时间再写一篇笔记)。 系统安装完成后, 发现无法联网, 通过 ifconfig/ ip addr 等命令查看, 发现系统并没有检测到网卡, 只有 lo 和virbr0 两块虚拟卡。</p>
<h1 id="原因定位">原因定位</h1>
<p>一开始以为是自己从阿里镜像上下载的CentOS 8镜像不完整导致的, 考虑是否换成CentOS 7再来安装一次,但在网上搜索了一下, 发现也有人遇到过类似的问题, 在安装CentOS 7/8的情况下都出现了网卡识别不了的情况, 也就是说, 即使再安装成CentOS 7可能也会遇到同样的问题, 排除了发行版本的因素。</p>
<p>在一篇文章<a href="https://www.cnblogs.com/braveym/p/9091025.html">https://www.cnblogs.com/braveym/p/9091025.html</a>中, 看到一名运维工程师提及在运维一批机器时, 因为是组装机, 所以费了不少功夫, 跟自己的情况挺类似的。</p>
<p>通过lspci的命令(lspci | grep -i ethernet
), 查到自己的网卡型号:r8125 (Ethernet controller: Realtek Semiconductor Co., Ltd. Device 8125 (rev 01)), 这卡网卡相对来说比较新, Linux自带的通用网卡驱动不适用, 需要自行安装驱动。</p>
<h1 id="安装过程">安装过程</h1>
<h2 id="下载驱动安装">下载驱动安装</h2>
<p>从官网<a href="https://www.realtek.com/en/component/zoo/category/network-interface-controllers-10-100-1000m-gigabit-ethernet-pci-express-software">https://www.realtek.com/en/component/zoo/category/network-interface-controllers-10-100-1000m-gigabit-ethernet-pci-express-software</a> 下载 驱动, 考虑到CentOS 8自带的内核版本过于4.18, 下载了 r8125-9.007.01.tar.bz2, 复制到U盘上。<br>
因为机器是离线的, 没有办法通过网络复制进去或者在主机上直接下载, 复制到U盘后。 通过命令<code>mount /dev/sdb4 /mnt/udisk</code> 挂载到机器上, 具体U盘对应的盘符可以通过<code>fdisk -l</code> 查看, 挂载路径提前创建好。<br>
挂载后,就可以读取U盘的内容。 U盘用的还是之前记录了CentOS 8 ISO安装镜像的那个。 将网卡驱动复制到本地目录, 解压后, 给安装脚本添加执行权限, 尝试执行安装。<br>
安装不成功, 提示缺少“libelf-dev, libelf-devel or elfutils-libelf-devel” 等依赖包。 按照网上的建议, 从安装镜像的ISO包里面找到 Package目录, 根据提示一个个进行安装, 用的是x86_64的版本, 如下:
<img src="2021-12-12-13-31-54.png" alt="">
最后提示 <code>load module r8125. Completed.</code> 网卡驱动安装成功了。</p>
<h2 id="配置网卡">配置网卡</h2>
<p>通过ifconfig查看到网卡已经识别出来了, 但还无没有分配IP无法上网。 需要制作一个网卡的配置文件<code>//在 /etc/sysconfg/network-script下面新建文件ifcfg-xxx</code>。 类似下面: ``<br>
DEVICE=&ldquo;xxx&rdquo;<br>
NAME=&ldquo;xxx&rdquo;<br>
DHCP=none</p>
<p>Address=&ldquo;xxx.xxx.xxx.xxx&rdquo;<br>
Gateway=&ldquo;xxx.xxx.xxx.xxx&rdquo;</p>
<p>``<br>
一开始可以先将DHCP配置为both, 通过ifconfig看到已经获取到IP了, 可以ping通百度了, 说明已经可以上网了, 再重新修改为上面的静态IP。 静态IP可以用于后续的远程连接。
<img src="2021-12-12-13-42-12.png" alt=""></p>
- http://zzc.life/posts/2021-12-12-%E7%A6%BB%E7%BA%BF%E7%8E%AF%E5%A2%83%E4%B8%8BCentOS%E5%AE%89%E8%A3%85%E7%BD%91%E5%8D%A1%E9%A9%B1%E5%8A%A8/ - </description>
</item>
<item>
<title>这就是ansible系列番外篇之一(SSH长连接填坑)</title>
<link>http://zzc.life/posts/2020-11-16-%E8%BF%99%E5%B0%B1%E6%98%AFansible%E7%B3%BB%E5%88%97%E7%95%AA%E5%A4%96%E7%AF%87%E4%B9%8B%E4%B8%80SSH%E9%95%BF%E8%BF%9E%E6%8E%A5%E5%A1%AB%E5%9D%91-/</link>
<pubDate>Mon, 16 Nov 2020 00:00:00 +0000</pubDate>
<guid>http://zzc.life/posts/2020-11-16-%E8%BF%99%E5%B0%B1%E6%98%AFansible%E7%B3%BB%E5%88%97%E7%95%AA%E5%A4%96%E7%AF%87%E4%B9%8B%E4%B8%80SSH%E9%95%BF%E8%BF%9E%E6%8E%A5%E5%A1%AB%E5%9D%91-/</guid>
<description>道与术修行记 http://zzc.life/posts/2020-11-16-%E8%BF%99%E5%B0%B1%E6%98%AFansible%E7%B3%BB%E5%88%97%E7%95%AA%E5%A4%96%E7%AF%87%E4%B9%8B%E4%B8%80SSH%E9%95%BF%E8%BF%9E%E6%8E%A5%E5%A1%AB%E5%9D%91-/ -<p> 本来计划着手开始实践ansible操作的, 准备了3台Centos7u5的机器, 系统环境为python 3.7.4, ansible版本为2.10.3, 哪知道出师不利, 配置好了ansible.cfg及inventory后, 执行一下ping就异常了。下面将尽量还原具体填坑的过程。</p>
<p>先来看一下折腾了几次之后的配置文件,如下:</p>
<p><img src="https://mmbiz.qpic.cn/mmbiz_png/tzwqLkEsh8PO1GIE6n4AFPicPBtIYA0cmITDAakxYfIngLTCIxn9J8wicBWVZ6rURhEsa7MkV4EBQeDliaFmQyy4g/640?wx_fmt=png" alt="img"></p>
<p>由于是pip安装的ansible, 缺省不会自动生成ansible.cfg, 就手动创建了。另外, 还创建的主机清单文件,如下:</p>
<p><img src="https://mmbiz.qpic.cn/mmbiz_png/tzwqLkEsh8PO1GIE6n4AFPicPBtIYA0cmwHrhNibstXBZxkDAoM378uUxVmUJ6p3jyB7AOulz9kUI3fF86r3ehHQ/640?wx_fmt=png" alt="img"></p>
<p>一开始的时候没有配置ssh连接的具体选项, 使用的是帐户加密码的认证方式, 执行ping命令</p>
<pre tabindex="0"><code>ansible nginx_cluster -m ping
</code></pre><p>时, 出错了, 错误如下:</p>
<p><img src="https://mmbiz.qpic.cn/mmbiz_png/tzwqLkEsh8PO1GIE6n4AFPicPBtIYA0cmhknQmlZVL828B9WYUzsdyUia77dW0TcvzQF1NEVhfVHBl34ZRoGAtCA/640?wx_fmt=png" alt="img"></p>
<p>具体的出错信息就是:</p>
<pre tabindex="0"><code>command-line line 0: Bad yes/no/ask argument.
</code></pre><p>看到yes/no, 灵机一动, 想起了ssh连接新机器时,也会有一个提示,要输入yes/no的, 大概如下:</p>
<p><img src="https://mmbiz.qpic.cn/mmbiz_png/tzwqLkEsh8PO1GIE6n4AFPicPBtIYA0cmVicjeTsHjoIwgUIgg4B0M51nlfoGhhLTqZTbsibeqHH19YvpicAObHlLA/640?wx_fmt=png" alt="img"></p>
<p>于是就顺着如何跳过首次连接时的命令提示的方向去定位和解决问题了, 成功地把自己带到了坑里。</p>
<p>首先尝试了采用ssh公钥的方式, 相关的配置如下:</p>
<pre tabindex="0"><code>ssh-keygen ssh-copy-id -i ~/.ssh/id_rsa.pub &lt;remote-host-name&gt;
</code></pre><p>然后在shell里面测试了一下,确实可以免钥直接登录成功。一阵开心, 心想这就问题应该O了, 把ansible.cfg及inventory调整了一下, 再次执行ping命令, 发现错误依然存在的。</p>
<p>然后就去折腾ssh自身的连接配置,包括在ansible.cfg里面指定ssh_conection的相关选项, 最主要的就是首次连接不要检查主机指纹StrictHostKeyChecking设置为no, 再次测试ping命令,发现错误依然存在。</p>
<p>拿着返回的错误提示, 去google了一下, 没有找到该错误直接关联的有效信息。找到了线索, 加上-vvv, 进行具体的debug。 交互中的重要信息如下:</p>
<p><img src="https://mmbiz.qpic.cn/mmbiz_png/tzwqLkEsh8PO1GIE6n4AFPicPBtIYA0cmdWrgDu4JNZOI9ug5dv9eDZWFJenY1xrneibuM4EOpog3fEwdbYnKFOA/640?wx_fmt=png" alt="img"></p>
<pre tabindex="0"><code>&lt;host-name&gt; SSH: EXEC ssh -C -o ControlMaster=auto -o ControlPersist=60s -o StrictHostKeyChecking=no -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o ConnectTimeout=10 -o ControlPath=/home/xx/.ansible/cp/472fc29db8 &lt;host-name&gt; &#39;/bin/sh -c &#39;&#34;&#39;&#34;&#39;echo ~ &amp;&amp; sleep 0&#39;&#34;&#39;&#34;&#39;&#39;&lt;xx-hostname&gt; (255, b&#39;&#39;, b&#39;command-line line 0: Bad yes/no/ask argument.\r\n&#39;)
</code></pre><p>可以看到, ssh连接的时候是带了一些选项的:</p>
<pre tabindex="0"><code>ssh -C -o ControlMaster=auto -o ControlPersist=60s -o StrictHostKeyChecking=no
</code></pre><p>于是在shell里面单独加上这些选项执行ssh时, 果然复现了同样的错误。</p>
<p>接下来就是逐个选项测试, 看一下哪些选项影响到了。最后试下来发现是ControlMaster及ControlPersist选项, 查了一下资料, 这个选项是提供了SSH长链接的功能, 该功能可以在断开终端连接时实现类似TCP长连接那样在一段时间内保持会话,下次连接的时候可以复用,从而达到节省时间的效果。</p>
<p>至此,问题总算有些眉目了。但是为什么ControlMaster等选项不生效呢?又继续挖下去中,发现是openssh版本的原因, ControlPersist选项(估计包括ControlMaster auto)都是在openssh 5.6之后才有的。而当前机器ssh使用的openssh版本为:</p>
<pre tabindex="0"><code>(base) bash-4.1$ ssh -VOpenSSH_3.9p1, OpenSSL 1.0.0-fips 29 Mar 2010
</code></pre><p>所以自然就出现了上面的问题。</p>
<p>总结一下,发现openssh不同版本的差异还是蛮大的, 包括ControlMaster的取值等等, 下次遇到一定要非常留意。 问题定位到了,下一步就是升级openssh版本了, 这里暂时不再详述了。</p>
- http://zzc.life/posts/2020-11-16-%E8%BF%99%E5%B0%B1%E6%98%AFansible%E7%B3%BB%E5%88%97%E7%95%AA%E5%A4%96%E7%AF%87%E4%B9%8B%E4%B8%80SSH%E9%95%BF%E8%BF%9E%E6%8E%A5%E5%A1%AB%E5%9D%91-/ - </description>
</item>
<item>
<title>这就是ansible系列之二(基础知识)</title>
<link>http://zzc.life/posts/2020-11-15-%E8%BF%99%E5%B0%B1%E6%98%AFansible%E7%B3%BB%E5%88%97%E4%B9%8B%E4%BA%8C%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86-/</link>
<pubDate>Sun, 15 Nov 2020 00:00:00 +0000</pubDate>
<guid>http://zzc.life/posts/2020-11-15-%E8%BF%99%E5%B0%B1%E6%98%AFansible%E7%B3%BB%E5%88%97%E4%B9%8B%E4%BA%8C%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86-/</guid>
<description>道与术修行记 http://zzc.life/posts/2020-11-15-%E8%BF%99%E5%B0%B1%E6%98%AFansible%E7%B3%BB%E5%88%97%E4%B9%8B%E4%BA%8C%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86-/ -<p>从ansible系列之一的文章中, 我们知道ansible主要是实现了批量系统配置、 批量程序部署、 批量运行命令功能。 很多情况下, ansible一个命令, 就可以完成一系列的操作, 真正做到了高效、自动化。那么, ansible是如何做到这些的呢?</p>
<p>首先让我们认识一下ansible的软件架构。</p>
<p><img src="https://mmbiz.qpic.cn/mmbiz_png/tzwqLkEsh8Mmqvib00zpqLhN4gh49NIHJicQubeSCribCq2xS4n90qgdTyjmic1lH0JR7oDIsf25eyb1dyFIcMSjhQ/640?wx_fmt=png" alt="img"></p>
<p>相关的模块的功能介绍如下:</p>
<table>
<thead>
<tr>
<th>模块名</th>
<th>功能</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>HostInventory</td>
<td>主机清单</td>
<td></td>
</tr>
<tr>
<td>Playbooks</td>
<td>配置文件, 包含多个任务, 可自动化执行</td>
<td></td>
</tr>
<tr>
<td>CoreModules</td>
<td>核心模块, 实现整个框架</td>
<td></td>
</tr>
<tr>
<td>CustomModules</td>
<td>定制模块</td>
<td></td>
</tr>
<tr>
<td>Plugins</td>
<td>补充模块的功能</td>
<td></td>
</tr>
<tr>
<td>ConnectionPlugins</td>
<td>连接器,用于连接主机</td>
<td></td>
</tr>
</tbody>
</table>
<p>实际上, ansible自身是个框架, 相关的功能都是通过 CoreModules/CustomModules来实现的,而HostInventory/Playbooks/ConnectionPlugins等是用来描述远程执行的主机信息、连接信息及编排要执行任务的相关组件。 上图还描述了ansible不仅适用于传统的IDC里面的主机/集群,也适用于云计算时候的公有云/私有云的场景。</p>
<p>那么, 实现了具体功能的CoreModules/CustomModules都有哪些呢?下面列举了一些常用的:</p>
<table>
<thead>
<tr>
<th>模块名</th>
<th>功能</th>
<th>示例</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>command</td>
<td>缺省模块,可以不用-m指定, 执行命令</td>
<td>ansible <!-- raw HTML omitted --> -a &ldquo;chdir=/tmp ls&rdquo; 在<!-- raw HTML omitted -->上运程执行跳转到/tmp目录并执行ls命令</td>
<td>不能直接执行管道等特殊命令, 需要通过shell模块</td>
</tr>
<tr>
<td>shell</td>
<td>执行shell命令</td>
<td>ansible <!-- raw HTML omitted --> -m shell -a &ldquo;chdir=/tmp ls |grep a&rdquo; 在<!-- raw HTML omitted -->上运程执行跳转到/tmp目录并执行ls命令并通过管道过滤出包含a的目录或文件</td>
<td></td>
</tr>
<tr>
<td>user</td>
<td>执行用户?</td>
<td>-m user -a &ldquo;name=xx state=xx password=xx&rdquo;</td>
<td></td>
</tr>
<tr>
<td>cron</td>
<td>定期任务</td>
<td>-m cron -a &ldquo;name=xx minute=xx job=xx&rdquo;</td>
<td>job取值要加引号</td>
</tr>
<tr>
<td>copy</td>
<td>复制</td>
<td>-m copy -a &ldquo;src= xx dest=xx&rdquo;</td>
<td>可以使用相对路径或者绝对路径</td>
</tr>
<tr>
<td>yum</td>
<td>包管理器</td>
<td>-m yum -a &ldquo;name=xx state=xx&rdquo;</td>
<td></td>
</tr>
<tr>
<td>fetch</td>
<td>从远程主机获取文件到本地</td>
<td>-m fetch -a &ldquo;src=xx dest=xx&rdquo;</td>
<td>参数含义跟copy相反, dest是指本地路径</td>
</tr>
<tr>
<td>file</td>
<td>创建或者查询目录或者文件</td>
<td>-m file -a &ldquo;path=xx mode=xx state={directory|link|present|absent} src= &quot;</td>
<td>directory会递归创建</td>
</tr>
<tr>
<td>ping</td>
<td>网络连通测试</td>
<td>-m ping</td>
<td>不用参数</td>
</tr>
<tr>
<td>service</td>
<td>服务操作</td>
<td>-m service -a &ldquo;name=xx state={started|stopped|restarted} enabled=xx&rdquo;</td>
<td></td>
</tr>
</tbody>
</table>
<p>具体的, 可以通过ansible-docl -l命令来查看可用模块的列表, 而模块的功能通用可以这样调用:</p>
<p>ansible <!-- raw HTML omitted --> <!-- raw HTML omitted --> -m module-name -a args</p>
<p>从整体上来看, ansible执行自动化部署的过程大概包括如下步骤:</p>
<p>a. 读取剧本playbook, 获取解析要执行的任务详情</p>
<p>b. 通过主机清单HostInventory 获取要执行的主机, 根据具体的任务调用相应的模块来执行任务</p>
<p>c. 通过连接器ConnectonPlugins连接对应的主机并推送待远程执行的任务列表</p>
<p>d. 远程执行任务中具体包含的命令</p>
<p>ansible的基础知识我们就大概介绍这么多, 下一篇将从实践的角度上来认识下ansible。</p>
- http://zzc.life/posts/2020-11-15-%E8%BF%99%E5%B0%B1%E6%98%AFansible%E7%B3%BB%E5%88%97%E4%B9%8B%E4%BA%8C%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86-/ - </description>
</item>
<item>
<title>这就是ansible系列之一(竞品)</title>
<link>http://zzc.life/posts/2020-11-14-%E8%BF%99%E5%B0%B1%E6%98%AFansible%E7%B3%BB%E5%88%97%E4%B9%8B%E4%B8%80%E7%AB%9E%E5%93%81/</link>
<pubDate>Sat, 14 Nov 2020 00:00:00 +0000</pubDate>
<guid>http://zzc.life/posts/2020-11-14-%E8%BF%99%E5%B0%B1%E6%98%AFansible%E7%B3%BB%E5%88%97%E4%B9%8B%E4%B8%80%E7%AB%9E%E5%93%81/</guid>
<description>道与术修行记 http://zzc.life/posts/2020-11-14-%E8%BF%99%E5%B0%B1%E6%98%AFansible%E7%B3%BB%E5%88%97%E4%B9%8B%E4%B8%80%E7%AB%9E%E5%93%81/ -<p>ansible属于自动化配置工具的领域, 已经被Redhat收购(官网<a href="https://www.ansible.com/">https://www.ansible.com/</a>)。</p>
<p>自动化配置工具解决的是如何将软件服务高效可靠地部署到数量众多的服务器上的问题, 简而言之就是批量部署软件服务。 如果不使用自动配置工具, 很自然地,我们通常会先手动在单机上安装一遍软件, 再写成自动化地脚本, 再一台机器一台机器的初始化环境及安装相关的依赖,再把相关的软件包上传到每台服务器上, 在上面执行前面写好的自动化脚本。 服务器数量在3台以内这个工作量看起来还是可以接受的, 但如果有十几台、甚至几十、上百、上千台就几乎不大可能了。自动化配置工具的出现就是来解决这样的问题。</p>
<p>当前在自动化配置工具领域业界有几款软件都是比较常用的,如下图所示:</p>
<p><img src="https://mmbiz.qlogo.cn/mmbiz_png/tzwqLkEsh8Phk2bJ84xic1fHYkibGMjZL2nME455dSJ5BZ0nBM5TD9ibVcuujoFnOavtsFJuIAyJ5oDq3nJqM8ZqA/0?wx_fmt=png" alt="img"></p>
<p>最近想基于k8s集群搭建大数据实验平台, 规划了5台物理机, 想着使用自动化配置工具来完成批量的软件部署, 所以简单地调研了一下, 最好决定使用ansible。 相关软件选型的考虑请看下文分析。
<img src="https://mmbiz.qlogo.cn/mmbiz_png/tzwqLkEsh8Phk2bJ84xic1fHYkibGMjZL2vPIwMdCEhNJ7pWyPNib39dV6obpB77y5D8gNlica1F2Nia1rcne3VJ46Q/0?wx_fmt=png" alt="img"></p>
<p>首先从架构来看, 无client端的会简化一点, 少一些麻烦, 从这个角度上来看, puppet及chef减1分; 从直接的协议来看, ssh协议支持通过密码和密钥认证, 也是非常方便地实现从一台服务器远程操作其它服务器的, 协议上来看都是可以提以接受的; 从实现语言来看, ruby远没有python友好, 这在二次开发相关功能插件时, 会有比较明显的效率上的差异, puppet及chef再减1分。</p>
<p>那在ansible及saltstack之间如何选择呢? 看相关的分析数据, saltstack部署效率会更高、机器数量比老版本的ansible也支持得多, 但从github上各自项目的star及贡献者及引用的项目来看, ansible明显是优于saltstack,意味着社区支持ansible会更好,saltstack减1分; 然后在网上也看到有网友吐槽</p>
<p>saltstack 文档复杂, 概念很多, 细微差别指令多, 酌情再减0.5分(自己还没有深度试用)。 其它的必要的项目的稳定性、可扩展性等, 都是差不多的。</p>
<p>另外, 本次主要解决的是使用ansible来搭建k8s集群, 发现github上人已经贡献了类似的项目<a href="https://github.com/easzlab/kubeasz">https://github.com/easzlab/kubeasz</a>, 有利于我快速上手解决当前的问题, ansible加1分。</p>
<p>综合上述, 在自动化配置工具的选型上最终选用了ansible。</p>
- http://zzc.life/posts/2020-11-14-%E8%BF%99%E5%B0%B1%E6%98%AFansible%E7%B3%BB%E5%88%97%E4%B9%8B%E4%B8%80%E7%AB%9E%E5%93%81/ - </description>
</item>
<item>
<title>这就是TLS系列之一(简介)</title>
<link>http://zzc.life/posts/2020-11-13-%E8%BF%99%E5%B0%B1%E6%98%AFTLS%E7%B3%BB%E5%88%97%E4%B9%8B%E4%B8%80%E7%AE%80%E4%BB%8B/</link>
<pubDate>Fri, 13 Nov 2020 00:00:00 +0000</pubDate>
<guid>http://zzc.life/posts/2020-11-13-%E8%BF%99%E5%B0%B1%E6%98%AFTLS%E7%B3%BB%E5%88%97%E4%B9%8B%E4%B8%80%E7%AE%80%E4%BB%8B/</guid>
<description>道与术修行记 http://zzc.life/posts/2020-11-13-%E8%BF%99%E5%B0%B1%E6%98%AFTLS%E7%B3%BB%E5%88%97%E4%B9%8B%E4%B8%80%E7%AE%80%E4%BB%8B/ -<p>TLS, 为Transport Layer Security的缩写, 用于在两个通信应用程序之间提供保密性和数据完整性。 这里面涉及到几点事情, 一是数据的传输格式, 这个是通过 TLS Record记录层来提供的, 另外的是数据传输之前的身份确认, 这个是TLS Handshake层来提供的, 大体的, 传输层通过 X.509协议认证, 利用非对称加密深处来对通信方做身份认证; 然后是数据的传输, 先是通过交换对称密钥作为session key, 再用这个密钥来加密数据, 从而保证 两个 应用通信的保密性和可靠性, 使得通信过程不被攻击者窃听。</p>
<p>TLS及SSL(安全套接字Secure Sockets Layer)的关系为SSL为TLS的前身, 都是用于保障通信的安全及数据完整性。</p>
- http://zzc.life/posts/2020-11-13-%E8%BF%99%E5%B0%B1%E6%98%AFTLS%E7%B3%BB%E5%88%97%E4%B9%8B%E4%B8%80%E7%AE%80%E4%BB%8B/ - </description>
</item>
</channel>
</rss>