在三台测试机上部署saltstack,分别为master,slave1,slave2,通过master下发给slave【1-2】安装chrony服务,并修改配置文件。
首先在saltstack master配置文件添加
file_roots:
chrony:
- /srv/chrony
创建目录
[root@master ~]# mkdir /srv/chrony
[root@master ~]# cd /srv/chrony/
配置top.sls文件
[root@master ~]# vim top.sls
chrony:
‘L@slave1,slave2’:
- chrony_install
编辑chrony_install.sls文件
[root@master ~]# vim chrony_install.sls
#注意yaml的缩进格式,两个空格表示一个缩进,笔者比较懒可以参考截图
chrony_pkg_install:
pkg.installed:
- name: chrony
delete_server:
cmd.run:
- name: sed -i ‘/^server/s/server/#server/’ /etc/chrony.conf
- require:
- pkg: chrony_pkg_install
alter_chrony:
cmd.run:
- name: sed -i ‘/#server 0.centos.pool.ntp.org iburst/i\server master iburst’ /etc/chrony.conf
- require:
- cmd: delete_server
running_chrony:
service.running:
- name: chronyd
- enable: true
- restart: true
- watch:
- cmd: alter_chrony
chronyc_sources:
cmd.run:
- name: chronyc sources
测试运行
[root@master chrony]# salt ‘’ state.highstate saltenv=chrony test =true
执行
[root@master chrony]# salt '’ state.highstate saltenv=chrony
slave1:
ID: chrony_pkg_install
Function: pkg.installed
Name: chrony
Result: True
Comment: The following packages were installed/updated: chrony
Started: 00:03:41.686597
Duration: 9809.749 ms
Changes:
----------
chrony:
----------
new:
3.2-2.el7
old:
ID: delete_server
Function: cmd.run
Name: sed -i '/^server/s/server/\#server/' /etc/chrony.conf
Result: True
Comment: Command "sed -i '/^server/s/server/\#server/' /etc/chrony.conf" run
Started: 00:03:51.498027
Duration: 8.345 ms
Changes:
----------
pid:
32459
retcode:
0
stderr:
stdout:
ID: alter_chrony
Function: cmd.run
Name: sed -i '/#server 0.centos.pool.ntp.org iburst/i\server master iburst' /etc/chrony.conf
Result: True
Comment: Command "sed -i '/#server 0.centos.pool.ntp.org iburst/i\server master iburst' /etc/chrony.conf" run
Started: 00:03:51.506832
Duration: 21.239 ms
Changes:
----------
pid:
32461
retcode:
0
stderr:
stdout:
ID: running_chrony
Function: service.running
Name: chronyd
Result: True
Comment: Service chronyd is already enabled, and is running
Started: 00:03:51.564842
Duration: 561.774 ms
Changes:
----------
chronyd:
True
ID: chronyc_sources
Function: cmd.run
Name: chronyc sources
Result: True
Comment: Command "chronyc sources" run
Started: 00:03:52.126780
Duration: 8.46 ms
Changes:
----------
pid:
32513
retcode:
0
stderr:
stdout:
210 Number of sources = 1
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^? master 0 6 0 - +0ns[ +0ns] +/- 0ns
Summary
Succeeded: 5 (changed=5)
Failed: 0
Total states run: 5
slave2:
ID: chrony_pkg_install
Function: pkg.installed
Name: chrony
Result: True
Comment: The following packages were installed/updated: chrony
Started: 00:03:41.792261
Duration: 9927.198 ms
Changes:
----------
chrony:
----------
new:
3.2-2.el7
old:
ID: delete_server
Function: cmd.run
Name: sed -i '/^server/s/server/\#server/' /etc/chrony.conf
Result: True
Comment: Command "sed -i '/^server/s/server/\#server/' /etc/chrony.conf" run
Started: 00:03:51.721319
Duration: 40.515 ms
Changes:
----------
pid:
32049
retcode:
0
stderr:
stdout:
ID: alter_chrony
Function: cmd.run
Name: sed -i '/#server 0.centos.pool.ntp.org iburst/i\server master iburst' /etc/chrony.conf
Result: True
Comment: Command "sed -i '/#server 0.centos.pool.ntp.org iburst/i\server master iburst' /etc/chrony.conf" run
Started: 00:03:51.762283
Duration: 33.683 ms
Changes:
----------
pid:
32051
retcode:
0
stderr:
stdout:
ID: running_chrony
Function: service.running
Name: chronyd
Result: True
Comment: Service chronyd is already enabled, and is running
Started: 00:03:51.807788
Duration: 523.758 ms
Changes:
----------
chronyd:
True
ID: chronyc_sources
Function: cmd.run
Name: chronyc sources
Result: True
Comment: Command "chronyc sources" run
Started: 00:03:52.331681
Duration: 7.493 ms
Changes:
----------
pid:
32101
retcode:
0
stderr:
stdout:
210 Number of sources = 1
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^? master 0 6 0 - +0ns[ +0ns] +/- 0ns
Summary
Succeeded: 5 (changed=5)
Failed: 0
Total states run: 5
可以看到在两台slave测试机上一键安装成功,时间也同步了。