saltstack的探索-改善管理用户的sls文件
<code>一、目录</code>
<code>[root@test200 user]</code><code># pwd</code>
<code>/srv/salt/user</code>
<code>[root@test200 user]</code><code># ls</code>
<code>group script</code>
<code>二、脚本</code>
<code>[root@test200 user]</code><code># ls script/</code>
<code>ops </code><code>users</code><code>.conf.d</code>
<code>其中,</code><code>/srv/salt/user/script/users</code><code>.conf.d是个空目录,用于同步到客户端,将用户管理的脚本整理到这个目录中。</code>
<code>目前还不知道是否可以这样:</code>
<code>定义一个路径:</code><code>/dir1/dir2/file1</code>
<code>一个参数指定要这个路径的文件,若上级目录不存在,则自动会创建对应的目录。</code>
<code>因而,采取了上述的做法。</code>
<code>[root@test200 user]</code><code># ls script/ops/</code>
<code>root_append.sh root_update.sh</code>
<code>脚本-更新root用户:</code>
<code>[root@test200 user]</code><code># cat script/ops/root_update.sh </code>
<code>#!/bin/bash</code>
<code># $ ssh-keygen -t rsa -b 2048 -C you_comment_here -f filename</code>
<code>username=</code><code>'root'</code>
<code>id</code> <code>${username}</code>
<code>d_root=</code><code>'/root/.ssh'</code>
<code>[ -d ${d_root} ] || </code><code>mkdir</code> <code>${d_root}</code>
<code>cat</code> <code><<_PUBKEY > /${d_root}</code><code>/authorized_keys</code>
<code>key1</code>
<code>key2</code>
<code>_PUBKEY</code>
<code>chmod</code> <code>700 ${d_root}</code>
<code>chmod</code> <code>600 ${d_root}</code><code>/authorized_keys</code>
<code>cat</code> <code>${d_root}</code><code>/authorized_keys</code>
<code>脚本-追加到root用户:</code>
<code>[root@test200 user]</code><code># cat script/ops/root_append.sh </code>
<code>id</code> <code>root</code>
<code>cat</code> <code><<_PUBKEY >> /${d_root}</code><code>/authorized_keys</code>
<code>key3</code>
<code>三、sls文件</code>
<code>sls-更新root用户: </code>
<code>[root@test200 user]</code><code># cat group/ops/root/update.sls </code>
<code>users</code><code>.conf.d:</code>
<code> </code><code>file</code><code>.recurse:</code>
<code> </code><code>- name: </code><code>/home/ops/bin/users</code><code>.conf.d</code>
<code> </code><code>- </code><code>source</code><code>: salt:</code><code>//user/script/users</code><code>.conf.d</code>
<code> </code><code>- include_empty: True</code>
<code> </code><code>- mkdirs: True</code>
<code> </code><code>- dir_mode: 755</code>
<code> </code><code>- file_mode: 644</code>
<code>user-script:</code>
<code> </code><code>file</code><code>.managed:</code>
<code> </code><code>- name: </code><code>/home/ops/bin/users</code><code>.conf.d</code><code>/root_update</code><code>.sh</code>
<code> </code><code>- </code><code>source</code><code>: salt:</code><code>//user/script/ops/root_update</code><code>.sh</code>
<code> </code><code>- mode: 644</code>
<code>user-script-run:</code>
<code> </code><code>cmd.run:</code>
<code> </code><code>- name: </code><code>/bin/bash</code> <code>/home/ops/bin/users</code><code>.conf.d</code><code>/root_update</code><code>.sh</code>
<code>sls-追加到root用户: </code>
<code>[root@test200 user]</code><code># cat group/ops/root/append.sls </code>
<code> </code><code>- name: </code><code>/home/ops/bin/users</code><code>.conf.d</code><code>/root_append</code><code>.sh</code>
<code> </code><code>- </code><code>source</code><code>: salt:</code><code>//user/script/ops/root_append</code><code>.sh</code>
<code> </code><code>- name: </code><code>/bin/bash</code> <code>/home/ops/bin/users</code><code>.conf.d</code><code>/root_append</code><code>.sh</code>
<code> </code>
<code>运行:</code>
<code>salt </code><code>'test10[1-5].company.com'</code> <code>state.sls user.group.ops.root.update</code>
<code>符合预期。</code>
<code>查看结果:</code>
<code>salt </code><code>'test10[1-5].company.com'</code> <code>cmd.run </code><code>'cat /root/.ssh/authorized_keys'</code>
本文转自 pcnk 51CTO博客,原文链接:http://blog.51cto.com/nosmoking/1636431,如需转载请自行联系原作者