centos下saltstack的安装与部署

本文详细介绍了在CentOS系统中安装和部署SaltStack的步骤,包括基础环境配置,如关闭防火墙和SELinux,安装yum源和SaltStack软件。接着,列举了常用命令,如`test.ping`、`cmd.run`等,并展示了如何使用SaltStack进行配置管理,如yum部署LAMP环境。此外,还提到了通过源码部署的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.  基础环境

http://docs.jinkan.org/docs/jinja2/   jinja网站

1.1. 环境信息

主机名

IP

软件

备注

salt-master

192.168.32.130

 

 

salt-minion01

192.168.32.131

 

 

salt-minion02

192.168.32.134

 

 

 

1.2. 配置IP

1.3. 关闭防火墙和selinux

systemctl disable firewalld.service

systemctl stop firewalld.service

firewall-cmd --state

1.4. 规范主机名

hostnamectl set-hostname master  \\此时主机名配置文件也改了

1.5. 时钟同步

2.  部署saltstack环境

2.1. 安装yum源

yum -y install https://repo.saltstack.com/yum/redhat/salt-repo-latest-2.el7.no

arch.rpm \\三台机器都执行

2.2. 安装saltstack

salt-master执行

[root@salt-master ~]# yum -y installsalt-master salt-minion

salt-minion01、salt-minion02执行

[root@salt-minion01 ~]# yum -y installsalt-minion

配置文件/etc/salt/

master的配置文件master

修改master的配置文件

[root@salt-master ~]# sed -i's/#auto_accept: False/auto_accept: True/' /etc/salt/master

\\开启自动认证功能

修改minion的配置文件,如下:

包括服务端的minion和2个客户端的minion

[root@salt-master salt]# IP=$(ifconfigeno16777736 | awk 'NR==2{print$2}');sed -i -e '/^#master: salt/ s/#master:salt/master: 192.168.32.130/' -e "/#id:/ s/#id:/id: $IP/"/etc/salt/minion

 

[root@salt-minion02 salt]# sed -i's/#master: salt/master: 192.168.32.130/' /etc/salt/minion

192.168.32.130:服务端(master)主机的IP

[root@salt-minion02 salt]# sed -i's/#id:/id: 192.168.32.134/' /etc/salt/minion

192.168.32.134:客户端(minion)主机的IP

最终结果如下:

启动(包括服务端的minion和客户端的minion)

启动服务端à启动客户端à查看状态

[root@salt-master salt]# systemctl startsalt-master.service

[root@salt-master salt]# systemctl enable salt-master.service

------------->

[root@salt-minion02 salt]# systemctl startsalt-minion.service

[root@salt-minion02 salt]# systemctl enablesalt-minion.service

 

查看有问题

[root@salt-master salt]# salt-key \\查看节点的状态,在服务端查看

 [root@salt-mastersalt]# salt-key –A  \\将所有未决定的加入进来

[root@salt-master ~]# salt-key -a192.168.32.131 \\把某一个节点加进来

服务端和客户端的私钥和公钥

服务端的公钥

 

客户端的公钥

创建minion组

设置分发文件的目录(均在master操作)

[root@salt-master ~]# vim /etc/salt/master

 

注:要分发的数据必须放在指定的根目录下

[root@salt-master base]# systemctl restartsalt-master.service

[root@salt-master ~]# mkdir -p/src/salt/{base,prod}

[root@salt-master /]# salt 192.168.32.130cp.get_dir salt://web /tmp/

因为在master配置文件中指定了根目录的位置,所以就省略了。

cp.get_dir:   就是把master端的file_roots(根目录)下制定的目录传递到minion端指定的目录下

3.  常用命令

3.1. test.ping

[root@salt-master ~]# salt "*"test.ping  \\测试客户端的联通性

salt:是命令

*:minion端的id

test:模块

ping:test模块下的方法

master端口tcp/4505

zeromq:  4505:minion连接到master,master 通过这个端口给minion发送数据

4506: master接受minion的返回数据的

minion端口tcp/4506

zeroMQ 通过AES加密算法,密文

3.2. cmd.run

万能命令

[root@salt-master ~]# salt '*' cmd.run"yum -y install telnet"

3.3. cp.get_

 

/src/salt/base/:master配置文件中指定的根目录

IP:minion端的IP

/tmp:minion端的目录

cp.get_dir:分发目录

cp.get_file:分发文件

/tmp/test2:test2文件名必须明确指出

3.4. cron

cron.raw_cron查询crontab

root:指定要查询的用户

cron.rm_job删除crontab

注:只有通过cron.set_job设置的计划任务才会被删除        

cron.set_job  添加crontab

注意双引号的位置

3.5. dnsutil

/etc/hosts 修改本地映射文件

添加映射记录

删除映射记录

3.6. file

file.get_sum:查看文件的加密信息,判断文件是否改变

file.chown:改变文件的属主属组

file.set_mode:设置文件权限

file.copy复制minion的文件从源目录到目的目录

file.directory_exists  :查询minion端制定的目录是否存在,存在返回True,不存在返回False

file.mkdir:创建目录,可以创建多级嵌套的目录

file.remove:删除目录或文件,每次只能删除一级目录,不是salt创建的目录也可以删除

file.append:追加内容到文件

file.get_mode:查询文件或者目录权限

3.7. network

network.dig:查看域名的信息

network.ping:测试联通性

network.traceroute:路由跟踪

 

network.hwaddr:查询网卡的mac地址

network.interface:查看指定网卡的所有信息

network.interfaces:查看所有网卡的信息

network.ipnetwork.interface_ip:获取IP

network.subnets:获取子网掩码

3.8. pkg

pkg.install: 根据系统平台,调用不同的包管理根据安装包,centos调用的是yum,ubuntu调用的是apt-get

pkg.remove:卸载

3.9. service

[root@salt-master ~]# salt 192.168.32.134pkg.install httpd

service.enable:设置服务的开机启动

service.disable:开机不启动

service.start:

service.stopservice.reload service.restart service.status

4.  配置管理

4.1. yum部署lamp

[root@salt-master prod]# mkdir{php,mysql,apache}

安装apache

[root@salt-master prod]# cd apache/

[root@salt-master apache]# vim httpd.sls

 

apache-install:

 pkg.installed:

    -name: httpd

apache-install:

 pkg.installed:

    -name: httpd

 

apache-service:

 service.running:

    -name: httpd

- enable: True

开始安装

[root@salt-master php]# salt 192.168.32.134state.sls apache.httpd saltenv=prod

如果不加入环境变量saltenv=prod(在/etc/salt/master中指定的),则apache.httpd应该为

安装mysql

[root@salt-master mysql]# vim mysql.sls

 

mysql-install:

 pkg.installed:

    -name: mysql-server

 

service-mysql:

 service.running:

    -name: mysqld

- enable: True

因为CentOS7的yum源中默认没有mysql的,需要做一下操作:

[root@salt-minion02 yum.repos.d]# wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm

[root@salt-minion02 yum.repos.d]# rpm -ivhmysql-community-release-el7-5.noarch.rpm

[root@salt-master files]# salt192.168.32.134 state.sls mysql.mysql saltenv=prod

mysql的安装时间较长,请耐心等待,大约1个小时。

4.2. 源码部署

上传包到salt的根目录下(必须)

编写nginx的sls文件

www-user-group:

 group.present:

    -name: www

    -gid: 1001

 user.present:

    -name: www

    -fullname: www

    -shell: /sbin/nologin

    -gid: 1001

- uid: 1001

 

[root@salt-master files]# vim nginx.sls

 

include:

  -web.files.user

depend-install:

 pkg.installed:

    -pkgs:

     - pcre

      - openssl

     - zlib

nginx-source-install:

 file.managed:

    -name: /usr/local/src/nginx-1.8.1.tar.gz

    -source: salt://web/files/nginx-1.8.1.tar.gz

    -user: root

    -group: root

    -mode: 644

 cmd.run:

    -name: cd /usr/local/src/ && tar zxf nginx-1.8.1.tar.gz && cdnginx-1.8.1 && ./configure --prefix=/usr/loc

al/nginx-1.8.1 --user=www --group=www--with-http_ssl_module --with-http_sub_module --with-http_stub_status_module--with-http_gzip_static_module --with-http_gunzip_module --with-pcre &&make && make install && ln -s /usr/local/nginx-1.8.1/usr/local/nginx && chown -R www.www /usr/local/nginx-1.8.1 &&/usr/local/nginx/sbin/nginx    - unless:test -d /usr/local/nginx-1.8.1

    -require:

     - file: nginx-source-install

     - pkg: depend-install

     - user: www-user-group

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值