標籤:use yum back kconfig 天才 cal www require pkg
上面簡單列出了源碼安裝的sls檔案書寫思路.
涉及到一些固定的思路:如,
1,拷貝 解壓安裝時候需要依賴tar.gz存在
如果已安裝則無需再次安裝.
2,啟動指令碼 加入chk時候需要檔案存在,如果已添加,則無需再次添加
3,服務管理 除了有啟動指令碼,還要watch設定檔.
?
晚上睡前早上起來多擼幾遍基本的軟體安裝就可以自己寫了.下面是源碼安裝nginx.涉及到基礎依賴包安裝(yum安裝),以及pcre安裝(源碼安裝)和nginx(源碼安裝)
其中有些坑,調整了老半天才搞好,甚是蛋疼,要注意圖中的兩點注意事項.
?
目錄結構
[[email protected] salt]# tree prod/
prod/
├── init
│?? └── install.sls
├── nginx
│?? ├── files
│?? │?? ├── nginx-1.9.1.tar.gz
│?? │?? ├── nginx.conf
│?? │?? └── nginx-init
│?? ├── install.sls
├── pcre
│?? ├── files
│?? │?? └── pcre-8.37.tar.gz
│?? └── install.sls
└── php
└── files
├── init.d.php-fpm
├── php-5.6.9.tar.gz
├── php-fpm.conf.default
└── php.ini-production
業務模組:
?
nginx.install
include:
- init.install
- pcre.install
?
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 #除了設定檔644,其餘的安裝包和啟動指令碼,均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和group前面,不然測了許可權改不了.
- 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
?
salt源碼安裝軟體和yum安裝軟體