前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用Salt States在Minion上配置LAMP堆栈

使用Salt States在Minion上配置LAMP堆栈

作者头像
LPD6375
发布2018-08-29 13:20:28
7760
发布2018-08-29 13:20:28

本教程将配置 Minion 的 LAMP 堆栈,并进一步使用 Salt States。本教程是为 Debian 8 编写的,但可以很容易地针对其他 Linux 发行版进行调整。在开始本指南之前,您将需要一个有效的 Salt master和minion 配置。如果您需要设置该先决条件,请参阅我们的 Salt 安装指南以开始使用。

创建 LAMP 配置状态

以下步骤为 2GB Linode 配置所有 Salt Minions,可以根据需要随意调整。

代码语言:javascript
复制
打开/etc/salt/base/top.sls文件并添加其他行:
/etc/salt/base/top.sls
base:
  '*':
     - lamp
     - extras
     - lampconf            
代码语言:javascript
复制
创建和编辑/etc/salt/base/lampconf.sls文件:
/etc/apache2/apache2.conf-KA:
  file.replace:
    - name: /etc/apache2/apache2.conf
    - pattern: 'KeepAlive On'
    - repl: 'KeepAlive Off'
    - show_changes: True

/etc/apache2/apache2.conf-IM:
  file.append:
    - name: /etc/apache2/apache2.conf
    - text: |
        <IfModule mpm_prefork_module>
        StartServers 4
        MinSpareServers 20
        MaxSpareServers 40
        MaxClients 200
        MaxRequestsPerChild 4500
        </IfModule>

# MySQL Configuration for 2GB Linode
/etc/mysql/my.cnf-br:
  file.blockreplace:
    - name: /etc/mysql/my.cnf
    - marker_start: '# * Fine Tuning'
    - marker_end: '# * Query Cache Configuration'
    - content: |
        #
        key_buffer             = 32M
        max_allowed_packet     = 1M
        thread_stack           = 128K
        thread_cache_size      = 8
        # This replaces the startup script and checks MyISAM tables if
        # needed the first time they are touched
        myisam-recover         = BACKUP
        max_connections        = 75
        table_cache            = 32
        #thread_concurrency    = 10
        #
    - backup: '.bak'
    - show_changes: True

# PHP Configuration for 2GB Linode
/etc/php5/apache2/php.ini-er:
  file.replace:
    - name: /etc/php5/apache2/php.ini
    - pattern: 'error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT'
    - repl: 'error_reporting = E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR'
    - show_changes: True

/etc/php5/apache2/php.ini-el:
  file.replace:
    - name: /etc/php5/apache2/php.ini
    - pattern: ';error_log = php_errors.log'
    - repl: 'error_log = /var/log/php/error.log'
    - show_changes: True

/var/log/php/error.log:
  file.managed:
    - user: www-data
    - group: root
    - dir_mode: 755
    - file_mode: 644
    - makedirs: True

# Restart
apache2-run-at-boot-restart:
  service.running:
    - name: apache2
    - enable: True
    - watch:
      - pkg: apache2

mysql-run-at-boot-restart:
  service.running:
    - name: mysql
    - enable: True
    - watch:
      - pkg: mysql-server
代码语言:javascript
复制
将状态设置传输到 Minions:

salt '*' state.highstate

创建虚拟主机文件

Salt State Modules 用于跨 Minions 组的设置。要调整单个 Minion 上的配置,请尝试使用 Salt Execution Modules。注意,有很多种方法可以使用 Salt。

代码语言:javascript
复制
禁用单个 Minion 或所有 Minions 上的默认 Apache 虚拟主机:
对于特定的 Minion :

salt '<hostname or Minion ID>' cmd.run "a2dissite *default"
对于所有的 Minion :

salt '*' cmd.run "a2dissite *default"
代码语言:javascript
复制
为网站的文件、日志和备份创建目录。替换example.com为网站名称:

salt '<hostname or Minion ID>' file.makedirs /var/www/example.com/pubic_html/ salt '<hostname or Minion ID>' file.makedirs /var/www/example.com/log/ salt '<hostname or Minion ID>' file.makedirs /var/www/example.com/backups/
代码语言:javascript
复制
在 Master 分支上创建一个目录以保存所有 Minion 虚拟主机文件。该目录可以作为所有 Minion 网站的索引。

mkdir /etc/salt/base/minionsites
代码语言:text
复制
/etc/salt/base/minionsites/example.com.conf为指定的 Minion 创建 vhost 文件。
全部替换example.com以及以下命令。
# domain: example.com
# public: /var/www/example.com/public_html/

<VirtualHost *:80>
  # Admin email, Server Name (domain name), and any aliases
  ServerAdmin webmaster@example.com
  ServerName  www.example.com
  ServerAlias example.com

  # Index file and Document Root (where the public files are located)
  DirectoryIndex index.html index.php
  DocumentRoot /var/www/example.com/public_html
  # Log file locations
  LogLevel warn
  ErrorLog  /var/www/example.com/log/error.log
  CustomLog /var/www/example.com/log/access.log combined
</VirtualHost>
代码语言:javascript
复制
将 vhost 文件从 Master 复制到/sites-availableMinion 的目录:

salt-cp '<hostname or Minion ID>' /etc/salt/base/minionsites/example.com.conf /etc/apache2/sites-available/example.com.conf
代码语言:javascript
复制
启用新网站并重新启动 Apache:

salt '<hostname or Minion ID>' cmd.run "a2ensite example.com.conf" salt '<hostname or Minion ID>' cmd.run "service apache2 reload"

上面的部分使用了cmdmodfile cp Salt Execution模块。

您现在应该根据需要在多个 Minion 中配置一个 LAMP 堆栈。可选地,使用 grain 进行进一步定制并将特定变量应用于每个主机。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 创建 LAMP 配置状态
  • 创建虚拟主机文件
相关产品与服务
轻量应用服务器
轻量应用服务器(TencentCloud Lighthouse)是新一代开箱即用、面向轻量应用场景的云服务器产品,助力中小企业和开发者便捷高效的在云端构建网站、Web应用、小程序/小游戏、游戏服、电商应用、云盘/图床和开发测试环境,相比普通云服务器更加简单易用且更贴近应用,以套餐形式整体售卖云资源并提供高带宽流量包,将热门开源软件打包实现一键构建应用,提供极简上云体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档