第一天把虚拟机都部署好了并且加入了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