saltstack相关实践2

memcached配置管理

1.1 www用户配置

[root@localhost prod]# cat /srv/salt/prod/user/www.sls 

www-user-group:

  group.present:

    - name: www

    - gid: 1000

  user.present:

    - name: www

    - fullname: www

    - shell: /sbin/nologin

    - uid: 1000

    - gid: 1000

1.2 安装libevent

[root@localhost prod]# cat /srv/salt/prod/user/www.sls 

www-user-group:

  group.present:

    - name: www

    - gid: 1000

  user.present:

    - name: www

    - fullname: www

    - shell: /sbin/nologin

    - uid: 1000

    - gid: 1000

[root@localhost prod]# cat /srv/salt/prod/libevent/install.sls 

libevent-source-install:

  file.managed:

    - name: /usr/local/src/libvent-2.1.8-stable.tar.gz

    - source: salt://libevent/files/libevent-2.1.8-stable.tar.gz

    - user: root

    - group: root

    - mode: 644

  cmd.run:

    - name: cd /usr/local/src && tar zxf libevent-2.1.8-stable.tar.gz&& cd libevent-2.1.8-stable && ./configure --prefix=/usr/local/libevent &&make &&make install

    - unless: test -d /usr/local/libevent

    - require:

      - file: libevent-source-install

1.3 安装memcached

[root@localhost files]# cat /srv/salt/prod/memcached/install.sls 

include:

  - libevent.install

memcached-source-install:

  file.managed:

    - name: /usr/local/src/memcached-1.5.10.tar.gz

    - source: salt://memcached/files/memcached-1.5.10.tar.gz

    - user: root

    - group: root

    - mode: 644

  cmd.run:

    - name: cd /usr/local/src && tar xvf memcached-1.5.10.tar.gz && cd memcached-1.5.10 && ./configure --prefix=/usr/local/memcached --enable-64bit --with-libevent-/usr/local/libevent && make && make install

    - unless: test -d /usr/local/memcached

    - require:

      - cmd: libevent-source-install

      - file: memcached-source-install

1.4 配置memcached服务

[root@localhost memcached]# cat /srv/salt/prod/memcached/service.sls 

include:

  - memcached.install

  - user.www

memcached-service:

  cmd.run:

    - name: /usr/local/memcached/bin/memcached -d -m 128 -p 11211 -c 8096 -u www

    - unless: netstat -ntlp | grep 11211

    - require:

      - cmd: memcached-source-install

      - user: www-user-group

2.nginx安装配置 2.1 安装pcre

[root@localhost pcre]# cat /srv/salt/prod/pcre/install.sls 

include:

  - pkg.pkg-init

pcre-source-install:

  file.managed:

    - name: /usr/local/src/pcre-8.37.tar.gz

    - source: salt://pcre/files/pcre-8.37.tar.gz

    - user: root

    - group: root

    - mode: 755

  cmd.run:

    - name: cd /usr/local/src && tar zxf pcre-8.37.tar.gz && cd pcre-8.37 && ./configure --prefix=/usr/local/pcre && make && make install

    - unless: test -d /usr/local/pcre

    - require:

      - file: pcre-source-install

      - pkg: pkg-init

2.2 安装nginx

[root@localhost prod]# cat /srv/salt/prod/nginx/install.sls 

include:

  - pkg.pkg-init

  - pcre.install
  - user.www

nginx-source-install:

  file.managed:

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

    - source: salt://nginx/files/nginx-1.9.1.tar.gz

    - user: root

    - group: root

    - mode: 755

  cmd.run:

    - name: cd /usr/local/src && tar zxf nginx-1.9.1.tar.gz && cd nginx-1.9.1 && ./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_ssl_module --with-http_stub_status_module --with-file-aio --with-http_dav_module --with-pcre=/usr/local/src/pcre-8.37 && make && make install

    - unless: test -d /usr/local/nginx

    - require: 

      - file: nginx-source-install

      - pkg: pkg-init

      - cmd: pcre-source-install

nginx-init:

  file.managed:

    - name: /etc/init.d/nginx

    - source: salt://nginx/files/nginx-init

    - mode: 755

    - user: root

    - group: root

  cmd.run:

    - name: chkconfig --add nginx

    - unless: chkconfig --list | grep nginx

    - require:

      - file: nginx-init

/usr/local/nginx/conf/nginx.conf:

  file.managed:

    - source: salt://nginx/files/nginx.conf

    - user: root

    - group: root

    - mode: 644

nginx-service:

  file.directory:

    - name: /usr/local/nginx/conf/vhost

    - require: 

      - cmd: nginx-source-install

  service.running:

    - name: nginx

    - enable: True

    - reload: True

    - require:

      - cmd: nginx-init

    - watch:

      - file: /usr/local/nginx/conf/nginx.conf

3.php配置管理

3.1 php安装

[root@localhost php]# cat /srv/salt/prod/php/install.sls 

php-source-install:

  file.managed:

    - name: /usr/local/src/php-5.6.9.tar.gz

    - source: salt://php/files/php-5.6.9.tar.gz

    - user: root

    - group: root

    - mode: 755

  cmd.run:

    - name: cd /usr/local/src && tar zxf php-5.6.9.tar.gz && cd php-5.6.9 &&  ./configure --prefix=/usr/local/php-fastcgi --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-mysql=mysqlnd --with-jpeg-dir --with-png-dir --with-zlib --enable-xml --with-libxml-dir --with-curl --enable-bcmath --enable-shmop --enable-sysvsem  --enable-inline-optimization --enable-mbregex --with-openssl --enable-mbstring --with-gd --enable-gd-native-ttf --with-freetype-dir=/usr/lib64 --with-gettext=/usr/lib64 --enable-sockets --with-xmlrpc --enable-zip --enable-soap --disable-debug --enable-opcache --enable-zip --with-config-file-path=/usr/local/php-fastcgi/etc --enable-fpm --with-fpm-user=www --with-fpm-group=www && make && make install

    - require:

      - file: php-source-install
      - user:www-user-group

    - unless: test -d /usr/local/php-fastcgi

pdo-plugin:

  cmd.run:

    - name: cd /usr/local/src/php-5.6.9/ext/pdo_mysql/ && /usr/local/php-fastcgi/bin/phpize && ./configure --with-php-config=/usr/local/php-fastcgi/bin/php-config &&  make && make install

    - unless: test -f /usr/local/php-fastcgi/lib/php/extensions/*/pdo_mysql.so

    - require:

      - cmd: php-source-install

php-ini:

  file.managed:

    - name: /usr/local/php-fastcgi/etc/php.ini

    - source: salt://php/files/php.ini-production

    - user: root

    - group: root

    - mode: 644

php-fpm:

  file.managed:

    - name: /usr/local/php-fastcgi/etc/php-fpm.conf

    - source: salt://php/files/php-fpm.conf.default

    - user: root

    - group: root

    - mode: 644

php-fastcgi-service:

  file.managed:

    - name: /etc/init.d/php-fpm

    - source: salt://php/files/init.d.php-fpm

    - user: root

    - group: root

    - mode: 755

  cmd.run:

    - name: chkconfig --add php-fpm

    - unless: chkconfig --list | grep php-fpm

    - require:

      - file: php-fastcgi-service

  service.running:

    - name: php-fpm

    - enable: True

    - require:

      - cmd: php-fastcgi-service

    - watch:

      - file: php-ini

      - file: php-fpm

点击这里配置文件下载


saltstack相关实践2
http://www.jcwit.com/article/314/
作者
Carlos
发布于
2018年10月9日
许可协议