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