8、salt生产常用,状态文件include。修改minion的ID
如果一段配置文件会被多次使用,可以单独定义出来,然后其他文件引用进来。例如我们之前的lamp.sls中,可以把开始的安装单独拿出来
cd /srv/salt/base/web
[root@master-1 web]# vim httpd.sls lamp-install: # 安装 pkg.installed: - pkgs: - httpd - php - php-pdo - php-mysql
vim lamp.sls
include: - web.httpd #配置 apache-config: file.managed: # 文件管理 - name: /etc/httpd/conf/httpd.conf - source: salt://web/files/httpd.conf #这是个相对目录,相当于base目录下的web - user: root - group: root - mode: 644 - template: jinja # 将httpd.conf变成模板文件 - defaults: # 参数 PORT: 80 #定义的两个变量 IPADDR: {{ grains['fqdn_ip4'][0] }} - require: #依赖某个状态 - pkg: lamp-install apache-auth: pkg.installed: - name: httpd-tools - require_in: - cmd: apache-auth # 确保httpd-tools安装 cmd.run: - name: htpasswd -bc /etc/httpd/conf/htpasswd_file admin admin # 调用htpasswd命令生成用户名密码,用户名和密码都是admin,保存到认证文件/etc/httpd/conf/htpasswd_file - unless: test -f /etc/httpd/conf/htpasswd_file # 判断命令返回值为真,那么cmd.run就不执行 apache-conf: file.recurse: - name: /etc/httpd/conf.d - source: salt://web/files/apache-conf.d php-config: file.managed: - name: /etc/php.ini - source: salt://web/files/php.ini - user: root - group: root - mode: 644 lamp-service: service.running: - name: httpd - enable: True - reload: True - watch: # 关注某个状态,只要下边的配置文件有变更,就重载服务 - file: apache-conf #监控的状态模块,后边是状态ID - file: apache-config
2、我们也可以把tomcat的安装过程分开,将jdk安装单独定义
vim jdk.sls
jdk-install: file.managed: - name: /usr/local/src/jdk-8u181-linux-x64.tar.gz - source: salt://web/files/jdk-8u181-linux-x64.tar.gz cmd.run: - name: cd /usr/local/src && tar zxf jdk-8u181-linux-x64.tar.gz -C /usr/local/ - unless: test -f /usr/local/src/jdk-8u181-linux-x64.tar.gz && test -d /usr/local/jdk1.8.0_181 /etc/profile: file.append: - text: - "export JAVA_HOME=/usr/local/jdk1.8.0_181" - "export JRE_HOME=/usr/local/jdk1.8.0_181/jre" - "export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH"
vim tomcat.sls
include: - web.jdk tomcat-install: file.managed: - name: /usr/local/src/apache-tomcat-8.0.46.tar.gz - source: salt://web/files/apache-tomcat-8.0.46.tar.gz - user: root - group: root - mode: 755 cmd.run: - name: cd /usr/local/src && tar zxf apache-tomcat-8.0.46.tar.gz -C /usr/local/ && ln -s /usr/local/apache-tomcat-8.0.46 /usr/local/tomcat - unless: test -L /usr/local/tomcat && test -d /usr/local/apache-tomcat-8.0.46
测试一下
salt master-2 state.sls web.tomcat test=True
salt master-2 state.sls web.tomcat
#3、改minion的ID过程
- 停止minion
- salt-key -d minionid #master操作
以下minion操作
- rm -fr /etc/salt/minion_id
- rm -fr /etc/salt/pki
- 修改配置文件id:,或者用主机名作为id的,可以不改,把主机名改完即可,/etc/hostname,/etc/hosts两个文件
- 启动minion
- 重启master,否则master也会有缓存
- salt-key -A 将minion重新加入