SaltStack实战之配置管理-LAMP自动化部署
SaltStack实战之配置管理-LAMP自动化部署
1. 部署思路
1. 将lamp分成3部分:软件包、配置文件、服务;
2. 确认安装的软件包名、配置文件路径、服务名等;
3. 按以上信息编写yaml文件;
2. 编写lamp.sls
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
[root@salt-master112 salt]# pwd /srv/salt [root@salt-master112 salt]# ls dev init prod test top.sls [root@salt-master112 salt]# cat dev/lamp.sls lamp-pkg-install: pkg.installed: - names: - httpd - php - php-fpm - mysql - mysql-server - php-mysql - php-pdo apache-service: file.managed: - name: /etc/httpd/conf/httpd.conf - source: - salt://dev/files/httpd.conf - user: root - group: root - mode: 644 service.running: - name: httpd - enable: True mysql-service: file.managed: - name: /etc/my.cnf - source: - salt://dev/files/my.cnf - user: root - group: root - mode: 644 service.running: - name: mysqld - enable: True php-fpm-service: service.running: - name: php-fpm - enable: True [root@salt-master112 salt]# cat top.sls base: '*': - init.dns dev: 'node*.test.com': - lamp [root@salt-master112 salt]# ls dev/ files lamp.sls [root@salt-master112 salt]# ls dev/files/ httpd.conf my.cnf [root@salt-master112 salt]# |
执行salt '*' state.highstate
查看结果:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 |
[root@salt-master112 salt]# salt-key -L Accepted Keys: master.test.com node1.test.com node2.test.com Denied Keys: Unaccepted Keys: Rejected Keys: [root@salt-master112 salt]# salt '*' state.highstate master.test.com: ---------- ID: /etc/resolv.conf Function: file.managed Result: True Comment: File /etc/resolv.conf is in the correct state Started: 23:20:50.495770 Duration: 23.706 ms Changes: Summary for master.test.com ------------ Succeeded: 1 Failed: 0 ------------ Total states run: 1 Total run time: 23.706 ms node1.test.com: ---------- ID: /etc/resolv.conf Function: file.managed Result: True Comment: File /etc/resolv.conf is in the correct state Started: 15:23:33.990342 Duration: 32.918 ms Changes: ---------- ID: lamp-pkg-install Function: pkg.installed Name: httpd Result: True Comment: Package httpd is already installed Started: 15:23:34.603609 Duration: 649.913 ms Changes: ---------- ID: lamp-pkg-install Function: pkg.installed Name: php-pdo Result: True Comment: Package php-pdo is already installed Started: 15:23:35.253716 Duration: 0.539 ms Changes: ---------- ID: lamp-pkg-install Function: pkg.installed Name: php-fpm Result: True Comment: Package php-fpm is already installed Started: 15:23:35.254347 Duration: 0.359 ms Changes: ---------- ID: lamp-pkg-install Function: pkg.installed Name: mysql-server Result: True Comment: Package mysql-server is already installed Started: 15:23:35.254807 Duration: 0.346 ms Changes: ---------- ID: lamp-pkg-install Function: pkg.installed Name: php-mysql Result: True Comment: Package php-mysql is already installed Started: 15:23:35.255233 Duration: 0.367 ms Changes: ---------- ID: lamp-pkg-install Function: pkg.installed Name: mysql Result: True Comment: Package mysql is already installed Started: 15:23:35.255688 Duration: 0.355 ms Changes: ---------- ID: lamp-pkg-install Function: pkg.installed Name: php Result: True Comment: Package php is already installed Started: 15:23:35.256129 Duration: 0.348 ms Changes: ---------- ID: apache-service Function: file.managed Name: /etc/httpd/conf/httpd.conf Result: False Comment: Unable to manage file: none of the specified sources were found Started: 15:23:35.256569 Duration: 6.275 ms Changes: ---------- ID: apache-service Function: service.running Name: httpd Result: False Comment: Service httpd has been enabled, and is dead Started: 15:23:35.275736 Duration: 230.013 ms Changes: ---------- httpd: True ---------- ID: mysql-service Function: file.managed Name: /etc/my.cnf Result: False Comment: Unable to manage file: none of the specified sources were found Started: 15:23:35.505956 Duration: 6.35 ms Changes: ---------- ID: mysql-service Function: service.running Name: httpd Result: False Comment: Service httpd is already enabled, and is dead Started: 15:23:35.512412 Duration: 134.002 ms Changes: ---------- ID: php-fpm-service Function: service.running Name: php-fpm Result: True Comment: Service php-fpm is already enabled, and is running Started: 15:23:35.646635 Duration: 196.639 ms Changes: ---------- php-fpm: True Summary for node1.test.com ------------ Succeeded: 9 (changed=2) Failed: 4 ------------ Total states run: 13 Total run time: 1.258 s node2.test.com: ---------- ID: /etc/resolv.conf Function: file.managed Result: True Comment: File /etc/resolv.conf is in the correct state Started: 15:23:34.682679 Duration: 103.617 ms Changes: ---------- ID: lamp-pkg-install Function: pkg.installed Name: httpd Result: True Comment: The following packages were installed/updated: httpd Started: 15:23:38.021487 Duration: 46521.648 ms Changes: ---------- apr: ---------- new: 1.3.9-5.el6_2 old: apr-util: ---------- new: 1.3.9-3.el6_0.1 old: apr-util-ldap: ---------- new: 1.3.9-3.el6_0.1 old: httpd: ---------- new: 2.2.15-59.el6.centos old: httpd-tools: ---------- new: 2.2.15-59.el6.centos old: mailcap: ---------- new: 2.1.31-2.el6 old: ---------- ID: lamp-pkg-install Function: pkg.installed Name: php-pdo Result: True Comment: The following packages were installed/updated: php-pdo Started: 15:24:24.562565 Duration: 8749.133 ms Changes: ---------- php-common: ---------- new: 5.3.3-49.el6 old: php-pdo: ---------- new: 5.3.3-49.el6 old: ---------- ID: lamp-pkg-install Function: pkg.installed Name: php-fpm Result: True Comment: The following packages were installed/updated: php-fpm Started: 15:24:33.336866 Duration: 8477.529 ms Changes: ---------- php-fpm: ---------- new: 5.3.3-49.el6 old: ---------- ID: lamp-pkg-install Function: pkg.installed Name: mysql-server Result: True Comment: The following packages were installed/updated: mysql-server Started: 15:24:41.843441 Duration: 28414.553 ms Changes: ---------- mysql: ---------- new: 5.1.73-8.el6_8 old: mysql-libs: ---------- new: 5.1.73-8.el6_8 old: mysql-server: ---------- new: 5.1.73-8.el6_8 old: perl-DBD-MySQL: ---------- new: 4.013-3.el6 old: perl-DBI: ---------- new: 1.609-4.el6 old: ---------- ID: lamp-pkg-install Function: pkg.installed Name: php-mysql Result: True Comment: The following packages were installed/updated: php-mysql Started: 15:25:10.289755 Duration: 8122.46 ms Changes: ---------- php-mysql: ---------- new: 5.3.3-49.el6 old: ---------- ID: lamp-pkg-install Function: pkg.installed Name: mysql Result: True Comment: Package mysql is already installed Started: 15:25:18.458202 Duration: 1.519 ms Changes: ---------- ID: lamp-pkg-install Function: pkg.installed Name: php Result: True Comment: The following packages were installed/updated: php Started: 15:25:18.459996 Duration: 14374.708 ms Changes: ---------- php: ---------- new: 5.3.3-49.el6 old: php-cli: ---------- new: 5.3.3-49.el6 old: ---------- ID: apache-service Function: file.managed Name: /etc/httpd/conf/httpd.conf Result: False Comment: Unable to manage file: none of the specified sources were found Started: 15:25:32.846614 Duration: 38.9 ms Changes: ---------- ID: apache-service Function: service.running Name: httpd Result: False Comment: Service httpd has been enabled, and is dead Started: 15:25:32.916084 Duration: 674.943 ms Changes: ---------- httpd: True ---------- ID: mysql-service Function: file.managed Name: /etc/my.cnf Result: False Comment: Unable to manage file: none of the specified sources were found Started: 15:25:33.591498 Duration: 23.162 ms Changes: ---------- ID: mysql-service Function: service.running Name: httpd Result: False Comment: Service httpd is already enabled, and is dead Started: 15:25:33.614954 Duration: 357.977 ms Changes: ---------- ID: php-fpm-service Function: service.running Name: php-fpm Result: True Comment: Service php-fpm is already enabled, and is running Started: 15:25:33.973402 Duration: 512.95 ms Changes: ---------- php-fpm: True Summary for node2.test.com ------------ Succeeded: 9 (changed=8) Failed: 4 ------------ Total states run: 13 Total run time: 116.373 s ERROR: Minions returned with non-zero exit code [root@salt-master112 salt]# |
上面结果中有报错
Unable to manage file: none of the specified sources were found
需要修改路径,把dev
去掉。因为在top.sls
配置文件中,lamp
是定义在dev下面的,因此salt://
应该是从dev目录下为起始的。
1 2 |
- salt://files/httpd.conf |
微信扫描下方的二维码阅读本文