用saltstack安装nignx服务器

本文档适用于centos操作系统
环境:
salt-master: 172.16.0.197
salt-minion(nginx server): 172.16.0.233
salt安装和添加认证过程略
首先浏览一下我的目录结构

[root@localhost salt]# tree /srv/salt/
/srv/salt/
├── base
│   ├── init
│   │   ├── env_init.sls
│   │   ├── epel.sls
│   │   ├── files
│   │   │   ├── zabbix-3.4.8.tar.gz
│   │   │   └── zabbix_agentd.conf
│   │   ├── pkg-init.sls
│   │   └── zabbix_agent.sls
│   ├── top.sls
│   └── user
│       └── zabbix.sls
└── prod
    ├── nginx
    │   ├── files
    │   │   ├── nginx-1.10.3.tar.gz
    │   │   ├── nginx.conf
    │   │   └── nginx-init
    │   ├── install.sls
    │   └── service.sls
    ├── pcre
    │   ├── files
    │   │   └── pcre-8.42.tar.gz
    │   └── install.sls
    └── user
        └── www.sls

zabbix部分是上篇文章的,这次主要看prod部分即可

创建目录

[root@localhost salt]# mkdir -p /srv/salt/prod/pcre/files/
[root@localhost salt]# mkdir -p /srv/salt/prod/nginx/files/

下载pcre和nginx源码包保存到各自的files目录下
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.42.tar.gz
wget http://nginx.org/download/nginx-1.12.2.tar.gz

编写pcre安装文件

[root@localhost salt]# cat /srv/salt/prod/pcre/install.sls
pcre-source-install:
  file.managed:
    - name: /usr/local/src/pcre-8.42.tar.gz
    - source: salt://pcre/files/pcre-8.42.tar.gz
    - user: root
    - group: root
    - mode: 755
  cmd.run:
    - name: cd /usr/local/src && tar zxf pcre-8.42.tar.gz && cd pcre-8.42 && ./configure --prefix=/usr/local/pcre && make && make install
    - unless: test -d /usr/local/pcre
    - require:
      - file: pcre-source-install

编写nginx安装文件

[root@localhost salt]# cat /srv/salt/prod/nginx/install.sls
include:
  - pcre.install
  - user.www

# Nginx编译安装
nginx-source-install:
  file.managed:
    - name: /usr/local/src/nginx-1.10.3.tar.gz
    - source: salt://nginx/files/nginx-1.10.3.tar.gz
    - user: root
    - group: root
    - mode: 755
  cmd.run:
    - name: cd /usr/local/src && tar zxf nginx-1.10.3.tar.gz && cd nginx-1.10.3 && ./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.42 && make && make install && chown -R www:www /usr/local/nginx
    - unless: test -d /usr/local/nginx
    - require:
      - user: www-user-group
      - file: nginx-source-install
      - pkg: pkg-init
      - cmd: pcre-source-install

这里注意nginx编译的时候--with-pcre=/usr/local/src/pcre-8.42指定的是pcre的源码目录,不是安装目录

编写nginx.conf

[root@localhost salt]# cat /srv/salt/prod/nginx/files/nginx.conf
user www;
worker_processes 16;
error_log  logs/error.log error;
worker_rlimit_nofile 30000;
pid    logs/nginx.pid;
events {
    use epoll;
    worker_connections 65535;
}

http {
    include    mime.types;
    default_type    application/octet-stream;
    sendfile    on;
    tcp_nopush  on;
    underscores_in_headers on;
    keepalive_timeout    10;
    send_timeout    60;
    include /usr/local/nginx/conf/vhost/*.conf;
    server {
        listen    80;
        server_name 127.0.0.1;
        location /nginx_status {
            stub_status on;
            access_log off;
            allow 127.0.0.1;
            deny all;
        }
    }
}

编写Nginx的service.sls启动服务

[root@localhost salt]# cat /srv/salt/prod/nginx/service.sls
include:
  - nginx.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: systemctl enable nginx
    - unless: systemctl list-unit-files | grep nginx
    - require:
      - file: nginx-init

/usr/local/nginx/conf/nginx.conf:
  file.managed:
    - source: salt://nginx/files/nginx.conf
    - user: www
    - group: www
    - 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

创建www用户

[root@localhost salt]# mkdir /srv/salt/prod/user
[root@localhost salt]# cat /srv/salt/prod/user/www.sls
www-user-group:
  group.present:
    - name: www
    - gid: 1001

  user.present:
    - name: www
    - fullname: www
    - shell: /sbin/nologin
    - uid: 1001
    - gid: 1001

修改top.sls

[root@localhost salt]# cat /srv/salt/base/top.sls
base:
  '*':
    - init.env_init
prod:
  '172.16.0.233':
    - nginx.install
    - nginx.service

因为我们是只对172.16.0.233这台机器安装nginx,所以这边只需要列出172.16.0.233这台主机即可

测试并运行

[root@localhost salt]# salt '*' state.highstate test=True
[root@localhost salt]# salt '*' state.highstate

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,015评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,262评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,727评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,986评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,363评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,610评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,871评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,582评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,297评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,551评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,053评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,385评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,035评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,079评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,841评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,648评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,550评论 2 270

推荐阅读更多精彩内容