第 1 ç« Shell ä¼ä¸šç¼–程基础............................................................................................................. 1 1.1 Shell 编程入门.........................................................................................................................................1 1.2 Shell 脚本åŠç¼–写 Hello World ç¨‹åº ..........................................................................................................3 1.3 Shell 编程................................................................................................................................................3 1.3.1 å˜é‡è¯¦è§£ ......................................................................................................................................3 1.3.2 系统å˜é‡ ......................................................................................................................................4 1.3.3 环境å˜é‡ ......................................................................................................................................4 1.3.4 用户å˜é‡ ......................................................................................................................................5 1.4 if æ¡ä»¶è¯å¥å®žæˆ˜ ......................................................................................................................................6 1.5 Shell 编程括å·å’Œç¬¦å·è¯¦è§£ ......................................................................................................................7 1.5.1 括å·è¯¦è§£ ......................................................................................................................................7 1.5.2 符å·è¯¦è§£ ......................................................................................................................................8 1.6 MySQL æ•°æ®åº“备份脚本 ..........................................................................................................................8 1.7 LNMP 一键自动化安装脚本 ....................................................................................................................9 1.8 for 循环è¯å¥å®žæˆ˜...................................................................................................................................13 1.9 while 循环è¯å¥å®žæˆ˜...............................................................................................................................14 1.10 case 选择è¯å¥å®žæˆ˜ ..............................................................................................................................17 1.11 select 选择è¯å¥å®žæˆ˜ ............................................................................................................................19 1.12 Shell 编程函数实战 .............................................................................................................................20 1.13 Shell 编程“四剑客â€..........................................................................................................................21 1.13.1 find ...........................................................................................................................................21 1.13.2 sed ............................................................................................................................................23 1.13.3 awk ...........................................................................................................................................27 1.13.4 grep...........................................................................................................................................30 1.14 Shell 数组编程.....................................................................................................................................32 第 2 ç« Shell 编程高级ä¼ä¸šå®žæˆ˜ ................................................................................................... 35 2.1 Shell 编程 Linux 系统备份脚本..............................................................................................................35 2.2 Shell 编程收集æœåŠ¡å™¨ä¿¡æ¯è„šæœ¬ .............................................................................................................37 2.3 Shell ç¼–ç¨‹æ‹’ç»æ¶æ„ IP 登录脚本............................................................................................................39 2.4 Shell 编程 LAMP 部署脚本 ....................................................................................................................40 VI Linux 自动化è¿ç»´å®žæˆ˜ 2.5 Shell 编程 LNMP 部署脚本 ....................................................................................................................44 2.6 Shell 编程 MySQL 主从å¤åˆ¶è„šæœ¬ ...........................................................................................................47 2.7 Shell 编程修改 IP åŠä¸»æœºå脚本............................................................................................................50 2.8 Shell 编程 Zabbix 安装é…置脚本 ............................................................................................................53 2.9 Shell 编程 Nginx 虚拟主机脚本..............................................................................................................55 2.10 Shell 编程 Nginxã€Tomcat 脚本 ............................................................................................................57 2.11 Shell ç¼–ç¨‹ç®¡ç† Linux 用户和组脚本.....................................................................................................60 2.12 Shell 编程 Vsftpd 虚拟用户管ç†è„šæœ¬....................................................................................................64 2.13 Shell 编程 Apache 多版本软件安装脚本...............................................................................................66 2.14 Shell 编程局域网 IP 探活脚本 .............................................................................................................68 2.15 Shell 编程 Apache 虚拟主机管ç†è„šæœ¬ ..................................................................................................72 2.16 Shell 编程实现 Apache 高å¯ç”¨è„šæœ¬......................................................................................................73 2.17 Shell 编程拒ç»é»‘客攻击 Linux 脚本.....................................................................................................75 2.18 Shell 编程 mysqldump æ•°æ®åº“自动备份脚本.........................................................................................77 2.19 Shell 编程 MySQL 主从自动é…置脚本 ..................................................................................................79 2.20 Shell 编程部署 Tomcat 多实例脚本 ......................................................................................................81 2.21 Shell 编程 Nginx 日志切割脚本............................................................................................................84 2.22 Shell 编程 Tomcat 实例和 Nginx å‡è¡¡è„šæœ¬ ............................................................................................84 2.23 Shell 编程密ç 远程执行命令脚本........................................................................................................96 2.24 Shell 编程密ç 远程å¤åˆ¶æ–‡ä»¶è„šæœ¬........................................................................................................97 2.25 Shell 编程 Bind DNS 管ç†è„šæœ¬ .............................................................................................................99 2.26 Shell 编程 Docker 虚拟化管ç†è„šæœ¬ .................................................................................................... 105 2.27 Shell 编程脚本................................................................................................................................... 109 2.27.1 Shell 编程采集æœåŠ¡å™¨ç¡¬ä»¶ä¿¡æ¯è„šæœ¬........................................................................................ 109 2.27.2 Shell 编程 Linux 系统åˆå§‹åŒ–脚本 ............................................................................................ 109 2.27.3 Shell 编程 Xtrabackup æ•°æ®åº“自动备份脚本 ............................................................................ 110 2.27.4 Shell 编程 Linux æœåС噍å…密钥分å‘脚本 ................................................................................. 110 2.27.5 Shell 编程 Nginx 多版本软件安装脚本..................................................................................... 110 2.27.6 Shell 编程自动收集软件ã€ç«¯å£ã€è¿›ç¨‹è„šæœ¬............................................................................. 111 2.27.7 Shell 编程 LVS è´Ÿè½½å‡è¡¡ç®¡ç†è„šæœ¬ .......................................................................................... 111 2.27.8 Shell 编程 Keepalived 管ç†è„šæœ¬ ............................................................................................... 111 2.27.9 Shell 编程 Discuz 门户网站自动部署脚本................................................................................ 111 2.27.10 Shell 编程监控 Linux ç£ç›˜åˆ†åŒºå®¹é‡è„šæœ¬ ............................................................................... 112 第 3 ç« è‡ªåŠ¨åŒ–è¿ç»´å‘展.............................................................................................................. 113 3.1 ä¼ ç»Ÿè¿ç»´æ–¹å¼ç®€ä»‹ .............................................................................................................................. 113 3.2 自动化è¿ç»´ç®€ä»‹.................................................................................................................................. 114 目录 VII 3.3 自动化è¿ç»´çš„具体内容....................................................................................................................... 114 3.4 建立高效的 IT 自动化è¿ç»´ç®¡ç† .......................................................................................................... 114 3.5 IT 自动化è¿ç»´å·¥å…·.............................................................................................................................. 115 3.6 IT 自动化è¿ç»´ä½“ç³».............................................................................................................................. 116 第 4 ç« Puppet 自动è¿ç»´ä¼ä¸šå®žæˆ˜ .............................................................................................. 117 4.1 Puppet 入门 ......................................................................................................................................... 117 4.2 Puppet 工作原ç†.................................................................................................................................. 118 4.3 Puppet 安装é…ç½®.................................................................................................................................. 119 4.4 Puppet ä¼ä¸šæ¡ˆä¾‹æ¼”示 .......................................................................................................................... 122 4.5 Puppet 常è§èµ„æºåŠæ¨¡å—....................................................................................................................... 124 4.6 Puppet file èµ„æºæ¡ˆä¾‹ ............................................................................................................................ 126 4.7 Puppet package èµ„æºæ¡ˆä¾‹ ..................................................................................................................... 129 4.8 Puppet service èµ„æºæ¡ˆä¾‹....................................................................................................................... 131 4.9 Puppet exec èµ„æºæ¡ˆä¾‹ .......................................................................................................................... 133 4.10 Puppet cron èµ„æºæ¡ˆä¾‹......................................................................................................................... 136 4.11 Puppet 日常管ç†ä¸Žé…ç½®..................................................................................................................... 138 4.11.1 Puppet 自动认è¯...................................................................................................................... 138 4.11.2 Puppet å®¢æˆ·ç«¯è‡ªåŠ¨åŒæ¥........................................................................................................... 139 4.11.3 Puppet æœåŠ¡å™¨ç«¯ä¸»åŠ¨æŽ¨é€....................................................................................................... 140 4.12 Puppet 批é‡éƒ¨ç½²æ¡ˆä¾‹......................................................................................................................... 141 4.12.1 Puppet 批é‡ä¿®æ”¹é™æ€ IP 案例.................................................................................................. 142 4.12.2 Puppet 批é‡é…ç½® NTP åŒæ¥æœåС噍 ........................................................................................... 143 4.12.3 Puppet 自动部署åŠåŒæ¥ç½‘ç«™ ................................................................................................... 145 第 5 ç« Ansible 自动è¿ç»´ä¼ä¸šå®žæˆ˜.............................................................................................. 148 5.1 Ansible 工具特点................................................................................................................................. 148 5.2 Ansible è¿ç»´å·¥å…·åŽŸç† ......................................................................................................................... 148 5.3 Ansible 管ç†å·¥å…·å®‰è£…é…ç½® .................................................................................................................. 149 5.4 Ansible 工具傿•°è¯¦è§£ ......................................................................................................................... 151 5.5 Ansible ping 模å—实战.......................................................................................................................... 152 5.6 Ansible command 模å—实战 .................................................................................................................. 152 5.7 Ansible copy 模å—实战 ......................................................................................................................... 154 5.8 Ansible YUM 模å—实战 ........................................................................................................................ 156 5.9 Ansible file 模å—实战 ........................................................................................................................... 157 5.10 Ansible user 模å—实战........................................................................................................................ 159 5.11 Ansible cron 模å—实战........................................................................................................................ 160 5.12 Ansible synchronize 模å—实战 ............................................................................................................. 162 VIII Linux 自动化è¿ç»´å®žæˆ˜ 5.13 Ansible Shell 模å—实战....................................................................................................................... 164 5.14 Ansible service 模å—实战.................................................................................................................... 166 5.15 Ansible Playbook 应用 ........................................................................................................................ 168 5.16 Ansible é…置文件详解........................................................................................................................ 174 5.17 Ansible 性能调优............................................................................................................................... 175 第 6 ç« SaltStack 自动è¿ç»´ä¼ä¸šå®žæˆ˜ .......................................................................................... 179 6.1 SaltStack è¿ç»´å·¥å…·ç‰¹ç‚¹ ....................................................................................................................... 179 6.2 SaltStack è¿ç»´å·¥å…·ç®€ä»‹ ....................................................................................................................... 179 6.3 SaltStack è¿ç»´å·¥å…·åŽŸç† ....................................................................................................................... 180 6.4 SaltStack å¹³å°é…置实战 ....................................................................................................................... 181 6.5 SaltStack 节点 Hosts åŠé˜²ç«å¢™è®¾ç½® ...................................................................................................... 181 6.6 SaltStack 管ç†å·¥å…·å®‰è£…é…ç½®................................................................................................................ 182 6.7 SaltStack 工具傿•°è¯¦è§£ ....................................................................................................................... 183 6.8 SaltStack ping 模å—实战 ....................................................................................................................... 185 6.9 SaltStack cmd 模å—实战........................................................................................................................ 185 6.10 SaltStack copy 模å—实战 ..................................................................................................................... 186 6.11 SaltStack pkg 模å—实战....................................................................................................................... 187 6.12 SaltStack service 模å—实战.................................................................................................................. 188 6.13 SaltStack é…置文件详解 ..................................................................................................................... 189 6.14 SaltStack State 自动化实战 ................................................................................................................. 190 6.14.1 SLS 文件ä¼ä¸šå®žæˆ˜æ¡ˆä¾‹ä¸€........................................................................................................ 192 6.14.2 SLS 文件ä¼ä¸šå®žæˆ˜æ¡ˆä¾‹äºŒ........................................................................................................ 192 6.14.3 SLS 文件ä¼ä¸šå®žæˆ˜æ¡ˆä¾‹ä¸‰........................................................................................................ 193 6.14.4 SLS 文件ä¼ä¸šå®žæˆ˜æ¡ˆä¾‹å››........................................................................................................ 193 6.14.5 SLS 文件ä¼ä¸šå®žæˆ˜æ¡ˆä¾‹äº”........................................................................................................ 194 6.14.6 SLS 文件ä¼ä¸šå®žæˆ˜æ¡ˆä¾‹å…........................................................................................................ 195 6.14.7 SLS 文件ä¼ä¸šå®žæˆ˜æ¡ˆä¾‹ä¸ƒ........................................................................................................ 195 6.14.8 SLS 文件ä¼ä¸šå®žæˆ˜æ¡ˆä¾‹å…«........................................................................................................ 196