sls编写

本文介绍如何使用SaltStack自动化部署yum源、vsftpd及nginx,包括配置文件管理和服务重启等步骤,大大提高了部署效率。

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

第一天把虚拟机都部署好了并且加入了master,那么今天来做一做准备工作
db_group:需要安装mysql,
ftp_group:需要安装vsftpd,
cms_group:需要jdk,nginx,war包
i_group,bi_group:需要jdk,tomcat,war包
那么就一个一个来吧,首先部署统一的yum源,yum源已经装好了http://192.168.10.253/yum/centos7
自动配置yum sls文件
- salt
  - sls
    - yum
      - files
        - yum.repo
      - yum.sls
yum.sls
rmove_repo_dir:
    cmd.run:
       - names:
            - 'rm -rf /etc/yum.repos.d'
sync_repo_file:
    file.managed:
        - name: /etc/yum.repos.d/yum.repo
        - source: salt://sls/yum/files/yum.repo
        - user: root
        - group: root
        - mode: 0755
        - makedirs: True
repo_flush:
    cmd.run:
        - names:
           - yum clean all
           - yum makecache
           - yum repolist
salt '*' state.sls sls.yum.yum

yum更新完成之后,开始安装vsftpd,vsftpd配置文件我都写好了包括vsftp.vu,vsftpd.conf,user.conf,account.db,做的是虚拟用户全部放到了sls.vsftpd.vsftpd.files目录下面了

vsftpd.sls
{% set users = ['vsftpd','overlord'] %}
{% for user in users %}
{{ user }}:
    user.present:
        - name: {{ user }}
        - shell: /sbin/nologin
{% endfor %}

vsftpd_install:
    pkg:
        - name: vsftpd
        - installed

vsftpd_user_dir:
    file.directory:
        - name: /etc/vsftpd/vconf
        - mode: 755
        - makedirs: True
        - require:
          - pkg: vsftpd

vsftpd_user_root_dir:
    file.directory:
        - name: /opt/vsftp/test01
        - mode: 755
        - makedirs: True
vsftpd_conf:
    file.managed:
        - name: /etc/vsftpd/vsftpd.conf
        - source: salt://sls/vsftpd/files/vsftpd.conf
        - require:
          - pkg: vsftpd
        - watch_in: 
          - service: vsftpd
        - skip_verify: True
pam_conf:
    file.managed:
        - name: /etc/pam.d/vsftp.vu
        - source: salt://sls/vsftpd/files/vsftp.vu
        - watch_in:
          - service: vsftpd
        - skip_verify: True     
user_db:
     file.managed:
        - name: /etc/vsftpd/account.db
        - source: salt://sls/vsftpd/files/account.db
        - watch_in:
          - service: vsftpd

user_conf:
     file.managed:
        - name: /etc/vsftpd/vconf/test01
        - source: salt://sls/vsftpd/files/test01
        - watch_in:
          - service: vsftpd
vsftpd_restart:
     service.running:
         - name: vsftpd
         - enable: True
         - reload: True
         - watch:
           - pkg: vsftpd
salt -N 'ftp_group' state.sls sls.vsftpd.vsftpd
就开始自动安装了,比手动安装要省很多时间,但是刚开始用这个sls还不太熟练,所以花了一会功夫,后面还要写一个自动添加用户,删除用户的sls

接着上面,需要安装一个nginx,nginx.conf文件都是提前配置好的,nginx.tar.gz,和nginx.service启动文件都放到了files目录下面sls如下

nginx.service内容如下,这里记一下免得后面忘了:
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking #指定后台执行
ExecStart=/usr/local/nginx/sbin/nginx #指定启动方式
ExecReload=/usr/local/nginx/sbin/nginx -s reload #指定重新加载方式
ExecStop=/usr/local/nginx/sbin/nginx -s quit #指定停止方式
PrivateTmp=true
[Install]
WantedBy=multi-user.target #指定什么模式下启动,可以指定为3,4,5



package_install:
    pkg.installed:
       - pkgs:
         - pcre-devel
         - zlib-devel
         - gcc
         - cmake
         - openssl-devel
user_add:
    user.present:
        - name: nginx
        - shell: /sbin/nologin

untar:
    archive.extracted:
        - name: /root/nginx
        - source: salt://sls/nginx/files/nginx-1.11.10.tar.gz
        - user: root
        - group: root

nginx_install:
    cmd.run:
       - cwd: /root/nginx/nginx-1.11.10
       - names:
         - ./configure --prefix=/usr/local/nginx
         - make && make install

nginx_config:
    file.managed:
        - name: /lib/systemd/system/nginx.service
        - source: salt://sls/nginx/files/nginx.service
        - user: root
        - group: root
        - mode: 0755
nginx_start:
    service.running:
        - name: nginx
        - enable: True
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值