centos下saltstack的安装与部署

Posted ITyouandme

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了centos下saltstack的安装与部署相关的知识,希望对你有一定的参考价值。

1.  基础环境

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.noarch.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.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

以上是关于centos下saltstack的安装与部署的主要内容,如果未能解决你的问题,请参考以下文章

saltstack安装部署与入门使用

centos6.5上部署集中化管理平台Saltstack!!!

第一篇:saltstack安装与配置

saltstack入门至放弃之salt安装部署

CentOS7 下SaltStack部署

Linux下部署saltstack