94.管理目录、远程命令、任务计划 其他命令 salt-ssh

24.10 配置管理目录

24.11 配置管理远程命令(使用shell脚本)

24.12 配置管理计划任务

24.13 其他命令

24.14 salt-ssh使用

 

 

 

 

24.10 配置管理目录

 

 

1.master上vi /srv/salt/test_dir.sls //加入如下内容

file_dir:

file.recurse: #模块的名字跟分发文件的有区别

- name: /tmp/testdir

- source: salt://test/123

- user: root

- file_mode: 640 #文件的权限

- dir_mode: 750 #目录的权限

- mkdir: True

- clean: True //加上它之后,源删除文件或目录,目标也会跟着删除,否则不会删除

2.修改top.sls, vi /srv/salt/top.sls //改为如下内容

base:

'*':

- test_dir

3.执行: salt 'aming-02' state.highstate

4.检查aming-02上是否有/tmp/testdir,检查里面的目录、文件以及权限

!!说明:这里有一个问题,如果source对应的目录里有空目录的话,客户端上不会创建该目录!!

 

实例:

[root@axinlinux-01 salt]# vim test_dir.sls

file_dir:

file.recurse:

- name: /tmp/testdir

- source: salt://test/123

- user: root

- file_mode: 640

- dir_mode: 750

- mkdir: True

- clean: True

[root@axinlinux-02 ~]# ls -l /tmp/testdir/ #minion上查看一下

总用量 4

-rw-r----- 1 root root 511 12月 7 23:04 1.txt

[root@axinlinux-01 test]# mkdir abc #做这些操作

[root@axinlinux-01 test]# touch 1.txt

[root@axinlinux-01 test]# rm -rf 123/

[root@axinlinux-01 test]# salt 'axinlinux-02' state.highstate #结果报错了

因为我们配置了123目录下的作为分发,删除abc目录,就会报错

[root@axinlinux-01 salt]# mkdir test/123 #那我们在创建123目录

[root@axinlinux-01 salt]# mv test/abc test/1.txt test/123/ #再把abc目录和123文件拷过来,相当于做了修改

[root@axinlinux-01 salt]# salt 'axinlinux-02' state.highstate #在更新

[root@axinlinux-02 ~]# ls /tmp/testdir/ #发现minion上并没有我们在master上创建的abc目录

1.txt

#这是因为,abc目录为空,他默认空目录不做同步更新。所以要在abc目录下touch一个文件,哪怕是空文件

[root@axinlinux-01 salt]# touch test/123/abc/2.txt #我们在abc目录下touch一个2.txt

[root@axinlinux-02 ~]# tree /tmp/testdir/ #到minion上就有了

/tmp/testdir/

├── 1.txt

├── 321

└── abc

└── 2.txt

 

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

 

 

24.11 配置管理远程命令(使用shell脚本)

 

 

在salt上设置一个脚本,在minion上执行这个脚本(多条命令)

1.master上vi /srv/salt/shell_test.sls //加入如下内容

shell_test:

cmd.script: #用到的模块名

- source: salt://test/1.sh #就是我们要执行的shell脚本

- user: root #执行的用户是谁

2.vi /srv/salt/test/1.sh //加入如下内容

#!/bin/bash

touch /tmp/111.txt

if [ ! -d /tmp/1233 ]

then

mkdir /tmp/1233

fi

3.更改top.sls内容

base:

'*':

- shell_test

4.执行: salt 'aming-02' state.highstate

5.检查是否有/tmp/111.txt和/tmp/1233

 

 

实例:

[root@axinlinux-01 salt]# vim shell_test.sls

shell_test:

cmd.script:

- source: salt://test/1.sh

- user: root

[root@axinlinux-01 salt]# vim test/1.sh

#!/bin/bash

touch /tmp/111.txt

if [ ! -d /tmp/1233 ]

then

mkdir /tmp/1233

fi

[root@axinlinux-01 salt]# vim top.sls

base:

'*':

- shell_test

[root@axinlinux-01 salt]# salt 'axinlinux-02' state.highstate

[root@axinlinux-02 ~]# ls -l /tmp/ #minion上查看一下

总用量 4

-rw-r--r-- 1 root root 0 12月 7 23:53 111.txt

drwxr-xr-x 2 root root 6 12月 7 23:53 1233

 

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

 

 

24.12 配置管理计划任务

 

 

 

1.master上vi /srv/salt/cron_test.sls //加入如下内容

cron_test:

cron.present:

- name: /bin/touch /tmp/111.txt #要执行的命令

- user: root #用户

- minute: '*' #分

- hour: 20 #时

- daymonth: '*' #日

- month: '*' #月

- dayweek: '*' #周

注意,*需要用单引号引起来。当然我们还可以使用file.managed模块来管理cron,因为系统的cron都是以配置文件的形式存在的。想要删除该cron,需要改为:

cron.absent:

- name: /bin/touch /tmp/111.txt

两者不能共存,要想删除一个cron,那之前的present模块(包含内容)就得去掉。

2.更改top.sls

base:

'*':

- cron_test

3.执行: salt 'aming-02' state.highstate

4.到aming-02上检查cron,会看到提示# Lines below here are managed by Salt, do not edit

5.我们不能随意改动它,否则就没法删除或者修改这个cron了。

 

 

实例:

[root@axinlinux-01 salt]# vim cron_test.sls

cron_test:

cron.present:

- name: /bin/touch /tmp/111.txt

- user: root

- minute: '*'

- hour: 20

- daymonth: '*'

- month: '*'

- dayweek: '*'

[root@axinlinux-01 salt]# vim top.sls

base:

'*':

- cron_test

[root@axinlinux-01 salt]# salt 'axinlinux-02' state.highstate

[root@axinlinux-02 ~]# crontab -l #minion上查看一下crontab

# Lines below here are managed by Salt, do not edit #这两行不要改,不然没办法修改或删除了

# SALT_CRON_IDENTIFIER:/bin/touch /tmp/111.txt

* 20 * * * /bin/touch /tmp/111.txt

[root@axinlinux-01 salt]# vim cron_test.sls #比如我们改个时间

cron_test:

cron.present:

- name: /bin/touch /tmp/111.txt

- user: root

- minute: 59 #改为59分

- hour: 20

- daymonth: '*'

- month: '*'

- dayweek: '*'

[root@axinlinux-01 salt]# salt 'axinlinux-02' state.highstate

[root@axinlinux-02 ~]# crontab -l #再次查看crontab就改变了

# Lines below here are managed by Salt, do not edit

# SALT_CRON_IDENTIFIER:/bin/touch /tmp/111.txt

59 20 * * * /bin/touch /tmp/111.txt

然后删除这个cron

[root@axinlinux-01 salt]# vim cron_test.sls

cron_test:

cron.absent:

- name: /bin/touch /tmp/111.txt

[root@axinlinux-01 salt]# salt 'axinlinux-02' state.highstate

[root@axinlinux-02 ~]# crontab -l #minion上查看就没有了

# Lines below here are managed by Salt, do not edit

 

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

 

 

24.13 其他命令

 

 

1.cp.get_file 拷贝master上的文件到客户端

salt '*' cp.get_file salt://test/1.txt /tmp/123.txt

2.cp.get_dir 拷贝目录

salt '*' cp.get_dir salt://test/conf /tmp/ //会自动在客户端创建conf目录,所以后面不要加conf,如果写成 /tmp/conf/ 则会在/tmp/conf/目录下又创建conf

3.salt-run manage.up 显示存活的minion

4.salt '*' cmd.script salt://test/1.sh 命令行下执行master上的shell脚本

 

 

实例:

1.

[root@axinlinux-01 salt]# salt '*' cp.get_file salt://test/1.txt /tmp/123.txt #报错,因为test目录下没有1.txt

[root@axinlinux-01 salt]# cp /etc/passwd /srv/salt/test/1.txt #搞一个过来

[root@axinlinux-01 salt]# salt '*' cp.get_file salt://test/1.txt /tmp/123.txt

axinlinux-02:

/tmp/123.txt

axinlinux-01:

Minion did not return. [Not connected] #再次报错。因为master上的minion服务没开启

[root@axinlinux-01 salt]# systemctl start salt-minion #开启master上的minion

[root@axinlinux-01 salt]# salt '*' cp.get_file salt://test/1.txt /tmp/123.txt

[root@axinlinux-01 salt]# ls -l /tmp/123.txt #查看一下

-rw-r--r-- 1 root root 2374 12月 8 00:34 /tmp/123.txt

2.

[root@axinlinux-01 salt]# salt '*' cp.get_dir salt://test/conf /tmp/ #报错,因为test目录下没有conf目录

axinlinux-02:

axinlinux-01:

[root@axinlinux-01 salt]# ls test #看一下test目录

123 1.sh 1.txt

[root@axinlinux-01 salt]# salt '*' cp.get_dir salt://test/123 /tmp/ #再次执行

axinlinux-01:

- /tmp//123/1.txt

- /tmp//123/321

- /tmp//123/abc/2.txt

axinlinux-02:

- /tmp//123/1.txt

- /tmp//123/321

- /tmp//123/abc/2.txt

[root@axinlinux-01 salt]# ls -l /tmp/123 #目录下的而所有都拷过来了

总用量 0

-rw-r--r-- 1 root root 0 12月 8 00:39 1.txt

-rw-r--r-- 1 root root 0 12月 8 00:39 321

drwxr-xr-x 2 root root 19 12月 8 00:39 abc

[root@axinlinux-01 salt]# ls -dl /tmp/123 #查看123目录本身

drwxr-xr-x 3 root root 41 12月 8 00:39 /tmp/123

3.

[root@axinlinux-01 salt]# salt-run manage.up

- axinlinux-01

- axinlinux-02

4.

[root@axinlinux-01 salt]# salt '*' cmd.script salt://test/1.sh

axinlinux-02:

----------

pid:

8258

retcode:

0

stderr:

stdout:

axinlinux-01:

----------

pid:

13087

retcode:

0

stderr:

stdout:

 

 

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

 

 

24.14 salt-ssh使用

 

 

 

1.salt-ssh不需要对客户端做认证,客户端也不用安装salt-minion,它类似pssh/expect

#自动的更改公钥

#第一次需要输入密码(/etc/salt/roster文件里定义或手动先ssh一下),第二次就不需要了

2.安装很简单yum install -y https://repo.saltstack.com/yum/redhat/salt-repo-latest-2.el7.noarch.rpm

3.yum install -y salt-ssh

4.vi /etc/salt/roster //增加如下内容 #salt-ssh需要的配置文件

axinlinux-01: #注意冒号

host: 192.168.208.128

user: root #因为这里是root,所以也不需要定义sudo了

passwd: wangxin789

axinlinux-02:

host: 192.168.208.130

user: root

passwd: wangxin789

5.salt-ssh --key-deploy '*' -r 'w' #执行的命令是w

//第一次执行的时候(--key-deploy)会自动把本机的公钥放到对方机器上,然后就可以把roster里面的密码去掉

 

 

 

实例:

[root@axinlinux-01 salt]# yum install -y https://repo.saltstack.com/yum/redhat/salt-repo-latest-2.el7.noarch.rpm #已经安装过了,就不用安装了。直接安装salt-ssh就可以了

[root@axinlinux-01 salt]# yum install -y salt-ssh

[root@axinlinux-01 salt]# vim /etc/salt/roster

axinlinux-01:

host: 192.168.208.128

user: root

passwd: wangxin789

axinlinux-02:

host: 192.168.208.130

user: root

passwd: wangxin789

[root@axinlinux-01 salt]# salt-ssh --key-deploy '*' -r 'w'

axinlinux-02:

----------

retcode:

0

stderr:

stdout:

root@192.168.208.130's password:

01:02:36 up 2:52, 1 user, load average: 0.00, 0.01, 0.05

USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT

root pts/0 192.168.208.1 22:20 32:36 0.10s 0.10s -bash

axinlinux-01:

----------

retcode:

0

stderr:

stdout:

01:02:36 up 2:52, 1 user, load average: 0.09, 0.13, 0.11

USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT

root pts/0 192.168.208.1 22:20 4.00s 2.00s 0.03s /usr/bin/python /usr/bin/salt-ssh --key-deploy * -r w

[root@axinlinux-01 salt]# ls -l /root/.ssh/authorized_keys #他能自动的更改公钥,来检查一下更改时间

-rw-r--r--. 1 root root 1219 12月 8 00:55 /root/.ssh/authorized_keys

[root@axinlinux-01 salt]# date

2018年 12月 08日 星期六 01:03:42 CST

[root@axinlinux-01 salt]# vim /etc/salt/roster #将密码删掉,让他用密钥登录执行

axinlinux-01:

host: 192.168.208.128

user: root

axinlinux-02:

host: 192.168.208.130

user: root

[root@axinlinux-01 salt]# salt-ssh --key-deploy '*' -r 'w' #也是可以的

 

 

 

 

 

 

 

 

 

 

转载于:https://my.oschina.net/u/3866149/blog/3030848

IBM、微软、华为等……均采用的软件配置库。目录摘要如下: 配置库结构 ..........\1 配置项 CI ..........\...........\1.01 客户文档 Customer ..........\...........\1.02 项目计划 Plan ..........\...........\.............\1.2.1 软件估计Estimation ..........\...........\.............\1.2.2 软件开发计划PPL ..........\...........\.............\1.2.3 配置管理计划CMP ..........\...........\1.03 需求分析SRS ..........\...........\................\infoX-MDSP PortalDemo SRS 软件需求规格说明书.doc .................................................. ..........\2 项目管理 PM ..........\.............\2.1 会议纪要 MOM ..........\.............\................\2.1.1 开工会 kick-off ..........\.............\................\2.1.2 周例会 weekly ..........\.............\................\2.1.3 阶段结束会议 EOP ..........\.............\................\2.1.4 关闭会议 closure ..........\.............\................\2.1.5 技术讨论会 Technical ..........\.............\................\2.1.6 其他会议 other ..........\.............\2.2 项目报告 Daily ..........\.............\..................\2.2.1 项目日报 Daily ..........\.............\..................\2.2.2 项目周报 weekly .................................................. ..........\.............\2.3 问题跟踪 Tracking ..........\.............\2.4 团队建设 Team Buliding ..........\.............\..........................\MTV-SMCP项目组月考核汇总表9月.xls ..........\.............\..........................\portaldemo项目沟通既要.xls ..........\.............\..........................\vssver.scc ..........\.............\2.5 公司制度 ..........\3 配置管理 CM .................................................. ..........\4 质量管理 QM ..........\.............\4.1 度量 Metrics .................................................. ..........\5 测试记录 Test Record .................................................. ..........\6 培训及总结 Training ..........\.....................\6.1 Plan阶段 .................................................. ..........\7 工具使用 Tools ..........\8 参考资料 Reference ..........\9 日志 Timesheet ..........\................\9.1 工时统计 Timesheet ..........\................\9.2 工作日志 Log ..........\................\9.3 技术问题跟踪Tracking ..........\................\........................\infoX-PortalDemo技术讨论问题跟踪表.xls
目录 1. 引言.............................................................................................................................................1 1.1 目的...................................................................................................................................1 1.2 术语定义............................................................................................................................1 1.3 参考资料............................................................................................................................1 2. 软件配置.....................................................................................................................................2 2.1 软件配置环境....................................................................................................................2 2.2 软件配置项........................................................................................................................2 2.3 配置管理员........................................................................................................................3 3. 软件配置管理计划......................................................................................................................4 3.1 建立示例配置库................................................................................................................4 3.2 配置标识管理....................................................................................................................6 3.3 配置库控制........................................................................................................................7 3.4 配置的检查和评审............................................................................................................8 3.5 配置库的备份....................................................................................................................9 3.6 配置管理计划的修订........................................................................................................9 3.7 配置管理计划附属文档....................................................................................................9 4. 里程碑.......................................................................................................................................11 附录1 文档命名规定....................................................................................................................12 1、受控配置库文件命名规则...............................................................................................12 2、非受控配置库文件命名规则...........................................................................................12 3、提交文档文件命名规则...................................................................................................12 附录2 文档编码规范....................................................................................................................13 附录3 帐号及权限管理................................................................................................................14 附录4 配置库使用规定................................................................................................................16 文档修改记录................................................................................................................................17
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值