擅长:python、mysql、java
<p>您只需要处理“输入”和“输出”</p>
<p>想象一个<code>lighttpd.conf</code>:</p>
<pre class="lang-js prettyprint-override"><code>server.modules = (
"mod_scgi",
"mod_compress",
"mod_accesslog"
)
</code></pre>
<pre class="lang-sh prettyprint-override"><code>oc create cm lighttpd from-file lighttpd.conf
</code></pre>
<p>因此,作为一个例子,让我们将<strong>mod_scgi</strong>更改为<strong>mod_fastcgi</strong>。所以我写了这个脚本:</p>
<pre class="lang-py prettyprint-override"><code>import fileinput
for line in fileinput.input():
if 'mod_scgi' in line:
print(line.replace('scgi', 'fastcgi').rstrip())
else:
print(line.rstrip())
</code></pre>
<p>因此,要更改<code>configMap</code>,请更新其值并再次应用:</p>
<pre class="lang-sh prettyprint-override"><code>oc get cm -o yaml | python modify.py | oc apply -f -
</code></pre>
<ul>
<li><code>get -o yaml</code>在屏幕上打印所有信息</li>
<li>输出转到脚本<code>modify.py</code></li>
<li><code>modify.py</code>更改并打印从标准输入读取的行</li>
<li>输出转到<code>oc</code></li>
<li><code>oc apply -f -</code>读取标准输入并应用</li>
</ul>