首页 文章 精选 留言 我的

精选列表

搜索[自动化运维],共10001篇文章
优秀的个人博客,低调大师

运维自动化之ansible playbook结合docker安装smokeping

本次介绍ansible的paly book结合docker进行虚拟机里安装2.6.8版本smokeping(apache版本是2.4.7)。 docker版本 1 2 3 4 5 6 7 8 9 10 09:26:53 #dockerversion Clientversion:0.11.1 ClientAPIversion:1.11 Goversion(client):go1.2.1 Gitcommit(client):fb99f99 /0 .11.1 Serverversion:0.11.1 ServerAPIversion:1.11 Gitcommit(server):fb99f99 /0 .11.1 Goversion(server):go1.2.1 Laststableversion:1.1.2,pleaseupdatedocker ansible版本 1 2 09:28:13 #ansible--version ansible1.4.3 1、查看docker已有镜像 1 2 3 4 5 09:25:55 #dockerimages REPOSITORYTAGIMAGEIDCREATEDVIRTUALSIZE ubuntu3.06cee552765289weeksago369.8MB centos53.0e08d23b091899weeksago840.9MB centos63.0e94a3b24a19b9weeksago415.9MB 可以看到有3个镜像,1个是ubuntu,1个centos5,1个centos6.我这里打算使用centos6来弄。 2、加载新容器 1 2 3 4 5 6 09:31:01 #timedockerinspect$(dockerrun-d-p22-p80:80--name="smokeping"centos6:3.0/usr/sbin/sshd-D)|grep-iaddress|awk-F'"''{print$4}' 172.17.0.5 real 0m4.737s user 0m0.038s sys 0m0.054s 可以看到4秒就加载新容器完成,并且镜像为centos6系统,容器名为smokeping,开启了ssh服务,并且暴漏了22与80端口。 下面在从后端看看本机都运行了哪些容器 1 2 3 4 5 6 09:31:29 #dockerps-a CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES 56b70c31a07ecentos6:3.0 /usr/sbin/sshd -DAboutaminuteagoUpAboutaminute0.0.0.0:80->80 /tcp ,0.0.0.0:49156->22 /tcp smokeping 846efb9e4d7aubuntu:3.0 /usr/sbin/sshd -D12daysagoUp4days0.0.0.0:49167->22 /tcp ubuntu-test1 b9a9e6f2caedcentos6:3.0 /usr/sbin/sshd -D3weeksagoUp4days0.0.0.0:49166->22 /tcp zabbix-server 978fff134b18centos6:3.0 /usr/sbin/sshd -D4weeksagoUp4days0.0.0.0:49165->22 /tcp centos6-test5 下面是ansible安装smokeping的部分 3、ansible安装smokeping的信息 1 2 3 4 5 09:34:06 #catsmokeping_install/vars/main.yml smokeping_dir: /usr/local/smokeping smokeping_version:2.6.8 smokeping_user:admin smokeping_passwd: '()TF%penst*&MedHU' 可以看到smokeping安装目录是/usr/local/smokeping,安装版本是2.6.8,登陆的账户是admin,登陆密码是()TF%penst*&MedHU 4、下面是安装smokeping的playbook结构 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 09:36:25 #treesmokeping_* smokeping_delete ├──files │└──delete_smokeping.sh ├──handlers ├──meta │└──main.yml ├──tasks │├──copy.yml │├──delete.yml │└──main.yml ├──templates └──vars ├──main.xml ├──main.yml └──vars └──main.yml smokeping_install ├──files │├──rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm │└──smokeping. tar .gz ├──handlers ├──meta │└──main.yml ├──tasks │├──copy.yml │├──delete.yml │├── install .yml │└──main.yml ├──templates │├──config │└──smokeping.conf └──vars └──main.yml 13directories,18files 5、playbook安装smokeping的内容是 1 2 3 4 5 6 7 8 9 10 09:37:27 #catsmokeping_install.yml --- -hosts: "`host`" remote_user: "`user`" gather_facts:True roles: -common -pcre_install -apache_install -smokeping_install 6、playbook删除smokeping的内容是 1 2 3 4 5 6 7 8 9 09:38:01 #catsmokeping_delete.yml --- -hosts: "`host`" remote_user: "`user`" gather_facts:True roles: -apache_delete -pcre_delete -smokeping_delete 下面是安装与测试过程 7、把docker新容器smokeping的ip加入到ansible的hosts里 1 echo "172.17.0.5" >> /etc/ansible/hosts 8、安装smokeping 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 09:39:10 #timeansible-playbooksmokeping_install.yml--extra-vars"host=172.17.0.5user=root"-k SSHpassword: PLAY[172.17.0.5]************************************************************* GATHERINGFACTS*************************************************************** ok:[172.17.0.5] TASK:[common|Installinitializtionrequiresoftware]*********************** changed:[172.17.0.5] TASK:[pcre_install|CopyPcreSoftwareToRedhatClient]******************** changed:[172.17.0.5] TASK:[pcre_install|UncompressionPcreSoftwareInRedhatClient]*********** changed:[172.17.0.5] TASK:[pcre_install|DeletePcreSoftwareInRedhatClient]****************** changed:[172.17.0.5] TASK:[apache_install|CopyApacheSoftwareToRedhatClient]**************** changed:[172.17.0.5]=>(item=httpd-2.4.7. tar .gz) changed:[172.17.0.5]=>(item=libiconv. tar .gz) TASK:[apache_install|CreateApacheUserInRedhatClient]****************** changed:[172.17.0.5] TASK:[apache_install|UncompressionApacheSoftwareToRedhatClient]******* changed:[172.17.0.5] TASK:[apache_install|CopyApacheConfigToRedhatClient]****************** changed:[172.17.0.5] TASK:[apache_install|CopyApacheVhostConfigToRedhatClient]************ changed:[172.17.0.5] TASK:[apache_install|CopyApacheStartServiceScriptToRedhatClient]*** changed:[172.17.0.5] TASK:[apache_install|CreateLibInstallDir]******************************* ok:[172.17.0.5] TASK:[apache_install|CheckApacheIconvInRedhatClient]****************** changed:[172.17.0.5] TASK:[apache_install|InstallApacheIconvInRedhatClient]**************** changed:[172.17.0.5] TASK:[apache_install|CheckLibInConfigInRedhatClient]***************** failed:[172.17.0.5]=>{ "changed" : true , "cmd" : "grep-c/usr/local/lib//etc/ld.so.conf" , "delta" : "0:00:00.006524" , "end" : "2014-08-1109:40:48.822372" , "item" : "" , "rc" :1, "start" : "2014-08-1109:40:48.815848" } stdout:0 ...ignoring TASK:[apache_install|InstallApacheIconvInRedhatClient]**************** changed:[172.17.0.5] TASK:[apache_install|CreateApacheDir]************************************ changed:[172.17.0.5]=>(item= /data/webroot/apache ) changed:[172.17.0.5]=>(item= /data/webroot/apache/logs ) changed:[172.17.0.5]=>(item= /data/webroot/apache/vhost ) TASK:[apache_install|InstallCheckScriptInRedhatClient]**************** changed:[172.17.0.5] TASK:[apache_install|CreateIndexHtmlToRedhatClient]******************* changed:[172.17.0.5] TASK:[apache_install|StartApacheServiceInRedhatClient]**************** changed:[172.17.0.5] TASK:[apache_install|AddBootStartApacheServiceInRedhatClient]******* changed:[172.17.0.5] TASK:[apache_install|DeleteApachecompressionSoftwareInRedhatClient]*** changed:[172.17.0.5] TASK:[smokeping_install|CreateSmokepingInstallDir]********************** changed:[172.17.0.5] TASK:[smokeping_install|CopySmokepingSoftwareToRedhatClient]********** changed:[172.17.0.5]=>(item=rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm) changed:[172.17.0.5]=>(item=smokeping. tar .gz) TASK:[smokeping_install|InstallEpelYumRepo]***************************** changed:[172.17.0.5] TASK:[smokeping_install|InstallRequireSoftware]************************** changed:[172.17.0.5] TASK:[smokeping_install|UncompressionSmokeping]************************** changed:[172.17.0.5] TASK:[smokeping_install|CopySmokepingConfigToRedhatClient]************ changed:[172.17.0.5] TASK:[smokeping_install|CopySmokepingHttpdConfigToRedhatClient]****** changed:[172.17.0.5] TASK:[smokeping_install|CheckBootStartInRedhatClient]***************** failed:[172.17.0.5]=>{ "changed" : true , "cmd" : "grep-c'/usr/local/smokeping/bin/smokeping--logfile=/var/log/smokeping.log2>&1&'/etc/rc.local" , "delta" : "0:00:00.007325" , "end" : "2014-08-1109:46:03.045378" , "item" : "" , "rc" :1, "start" : "2014-08-1109:46:03.038053" } stdout:0 ...ignoring TASK:[smokeping_install|AddBootStartInRedhatClient]******************* changed:[172.17.0.5] TASK:[smokeping_install|ModifySmokepingDirPermissionInRedhatClient]*** changed:[172.17.0.5] TASK:[smokeping_install|StartSmokepingServiceInRedhatClient]********** changed:[172.17.0.5] TASK:[smokeping_install|RestartApacheServiceInRedhatClient]*********** changed:[172.17.0.5] TASK:[smokeping_install|DeleteInstalledFile]***************************** changed:[172.17.0.5] PLAYRECAP******************************************************************** 172.17.0.5:ok=35changed=33unreachable=0failed=0 real 6m52.934s user 0m15.104s sys 0m1.632s 花费6分52秒完成,花费时间多的主要是yum安装基础库与使用epel安装smokeping依赖库。 9、安装后测试 查看smokeping 由于我做了安全认证,需要输入账户与密码,这个账户与密码就上文第3步的账户与密码 然后默认的其他网络监控(包括1、2、3线电信、移动、联通、铁通与教育网的节点监控已经做好) 如果有其他的监控需要自己来添加即可。 10、删除 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 09:46:08 #timeansible-playbooksmokeping_delete.yml--extra-vars"host=172.17.0.5user=root"-k SSHpassword: PLAY[172.17.0.5]************************************************************* GATHERINGFACTS*************************************************************** ok:[172.17.0.5] TASK:[apache_delete|StopHttpdServiceInRedHatClient]******************* changed:[172.17.0.5] TASK:[apache_delete|DeleteBootStartInRedHatClient]******************** changed:[172.17.0.5] TASK:[apache_delete|DeleteApacheDirInRedHatClient]******************** changed:[172.17.0.5] TASK:[apache_delete|DeleteApacheServiceScriptInRedHatClient]********* changed:[172.17.0.5] TASK:[apache_delete|DeleteApacheUser]************************************ changed:[172.17.0.5] TASK:[pcre_delete|DeletePcre]********************************************* changed:[172.17.0.5] TASK:[smokeping_delete|StopSmokepingServiceInRedhatClient]************ changed:[172.17.0.5] TASK:[smokeping_delete|DeleteSmokepingDirInRedhatClient]************** changed:[172.17.0.5] TASK:[smokeping_delete|DeleteBootStartInRedhatClient]***************** changed:[172.17.0.5] PLAYRECAP******************************************************************** 172.17.0.5:ok=10changed=9unreachable=0failed=0 real 0m9.326s user 0m2.914s sys 0m0.446s 11、删除后测试 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 09:59:45 #ssh172.17.0.5 root@172.17.0.5'spassword: root@56b70c31a07e:~ 09:59:57 #ifconfig eth0Linkencap:EthernetHWaddrA6:80:57:2D:D3:F1 inetaddr:172.17.0.5Bcast:0.0.0.0Mask:255.255.0.0 inet6addr:fe80::a480:57ff:fe2d:d3f1 /64 Scope:Link UPBROADCASTRUNNINGMTU:1500Metric:1 RXpackets:84520errors:0dropped:0overruns:0frame:0 TXpackets:86385errors:0dropped:0overruns:0carrier:0 collisions:0txqueuelen:1000 RXbytes:69075188(65.8MiB)TXbytes:9400662(8.9MiB) loLinkencap:LocalLoopback inetaddr:127.0.0.1Mask:255.0.0.0 inet6addr:::1 /128 Scope:Host UPLOOPBACKRUNNINGMTU:16436Metric:1 RXpackets:2errors:0dropped:0overruns:0frame:0 TXpackets:2errors:0dropped:0overruns:0carrier:0 collisions:0txqueuelen:0 RXbytes:168(168.0b)TXbytes:168(168.0b) root@56b70c31a07e:~ 09:59:59 #ps-ef|grephttpd root10171002010:00pts /0 00:00:00 grep httpd root@56b70c31a07e:~ 10:00:04 #ps-ef|grepsmokeping root10191002010:00pts /0 00:00:00 grep smokeping root@56b70c31a07e:~ 10:00:07 #ll/usr/local/ total40 drwxr-xr-x2rootroot4096Sep232011bin drwxr-xr-x2rootroot4096Sep232011etc drwxr-xr-x2rootroot4096Sep232011games drwxr-xr-x2rootroot4096Sep232011include drwxr-xr-x2rootroot4096Aug1109:40lib drwxr-xr-x2rootroot4096Sep232011lib64 drwxr-xr-x2rootroot4096Sep232011libexec drwxr-xr-x2rootroot4096Sep232011sbin drwxr-xr-x5rootroot4096Sep232011share drwxr-xr-x2rootroot4096Sep232011src root@56b70c31a07e:~ 10:00:11 #cat/etc/rc.local #!/bin/sh # #Thisscriptwillbeexecuted*after*alltheotherinitscripts. #Youcanputyourowninitializationstuffinhereifyoudon't #wanttodothefullSysVstyleinitstuff. touch /var/lock/subsys/local 如果大家想使用我的例子,可以从github里下载(地址是https://github.com/dl528888/ansible-examples/tree/master/smokeping_install),然后放到/etc/ansible目录里,下面是内容 本文转自 reinxu 51CTO博客,原文链接:http://blog.51cto.com/dl528888/1538444,如需转载请自行联系原作者

优秀的个人博客,低调大师

运维自动化之ansible playbook结合docker安装redis主从

上次给大家介绍了ansible结合docker安装smokeping(地址http://dl528888.blog.51cto.com/2382721/1538444),现在在介绍一下ansible结合docker安装redis主从(redis版本是2.6.17)。 目前ansible使用的人比较多,docker也最近比较流行,而且做测试的话,ansible+docker是个很好的组合。本文主要是介绍如何使用ansible的playbook安装redis主从,可以自动的做好主从,这样节省安装时间、减少问题产生。 docker版本 1 2 3 4 5 6 7 8 9 10 09:49:09 #dockerversion Clientversion:0.11.1 ClientAPIversion:1.11 Goversion(client):go1.2.1 Gitcommit(client):fb99f99 /0 .11.1 Serverversion:0.11.1 ServerAPIversion:1.11 Gitcommit(server):fb99f99 /0 .11.1 Goversion(server):go1.2.1 Laststableversion:1.1.2,pleaseupdatedocker ansible版本 1 2 09:51:55 #ansible--version ansible1.4.3 1、查看已有的docker镜像 1 2 3 4 5 09:39:26 #dockerimages REPOSITORYTAGIMAGEIDCREATEDVIRTUALSIZE ubuntu3.06cee552765289weeksago369.8MB centos53.0e08d23b091899weeksago840.9MB centos63.0e94a3b24a19b9weeksago415.9MB 2、查看当前运行的docker容器 1 2 3 4 5 6 09:39:47 #dockerps-a CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES 846efb9e4d7aubuntu:3.0 /usr/sbin/sshd -D2weeksagoUp6days0.0.0.0:49167->22 /tcp ubuntu-test1 b9a9e6f2caedcentos6:3.0 /usr/sbin/sshd -D3weeksagoUp6days0.0.0.0:49166->22 /tcp zabbix-server 978fff134b18centos6:3.0 /usr/sbin/sshd -D5weeksagoUp6days0.0.0.0:49165->22 /tcp centos6-test5 root@ip-10-10-10-10: /etc/ansible/roles/redis_install/templates 3、加载测试容器 由于是做redis主从,所以需要2个容器 1 2 3 4 5 6 7 8 9 10 11 12 13 09:39:50 #timedockerinspect$(dockerrun-d-p22--name="redis-master"centos6:3.0/usr/sbin/sshd-D)|grep-iaddress|awk-F'"''{print$4}' 172.17.0.5 real 0m6.369s user 0m0.036s sys 0m0.049s root@ip-10-10-10-10: /etc/ansible/roles/redis_install/templates 09:40:25 #timedockerinspect$(dockerrun-d-p22--name="redis-slave"centos6:3.0/usr/sbin/sshd-D)|grep-iaddress|awk-F'"''{print$4}' 172.17.0.6 real 0m12.567s user 0m0.047s sys 0m0.060s 然后把新容器的ip加入到ansible的hosts里 1 2 3 4 5 root@ip-10-10-10-10: /etc/ansible/roles/redis_install/templates 09:40:46 #echo"172.17.0.5">>/etc/ansible/hosts root@ip-10-10-10-10: /etc/ansible/roles/redis_install/templates 09:40:58 #echo"172.17.0.6">>/etc/ansible/hosts root@ip-10-10-10-10: /etc/ansible/roles/redis_install/templates 4、ansible安装redis的信息 1 2 3 4 5 6 7 09:52:11 #cat/etc/ansible/roles/redis_install/vars/main.yml redis_dir: /data redis_version:2.6.17 redis_port:6379 redis_conf_dir: /data/redis-2 .6.17 /conf redis_db_dir: /data/redis-2 .6.17 /db redis_log_dir: /data/redis-2 .6.17 /log 5、下面是redis的playbook结构 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 09:55:12 #tree/etc/ansible/roles/redis_install/etc/ansible/roles/redis_delete /etc/ansible/roles/redis_install ├──files │└──redis-2.6.17. tar .gz ├──handlers ├──meta │└──main.yml ├──tasks │├──copy.yml │├──delete.yml │├── install .yml │└──main.yml ├──templates │└──redis.conf └──vars └──main.yml /etc/ansible/roles/redis_delete ├──files ├──handlers ├──meta │└──main.yml ├──tasks │├──delete.yml │└──main.yml ├──templates │└──delete_redis.sh └──vars └──main.yml 12directories,13files 6、playbook安装redis的内容是 1 2 3 4 5 6 7 8 09:57:09 #catredis_install.yml --- -hosts: "`host`" remote_user: "`user`" gather_facts:True roles: -common -redis_install 7、playbook删除redis的内容是 1 2 3 4 5 6 7 09:57:31 #catredis_delete.yml --- -hosts: "`host`" remote_user: "`user`" gather_facts:True roles: -redis_delete 下面是安装redis主从 8、安装redis master 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 09:43:11 #timeansible-playbookredis_install.yml--extra-vars"host=172.17.0.5user=root"-k SSHpassword: PLAY[172.17.0.5]************************************************************* GATHERINGFACTS*************************************************************** ok:[172.17.0.5] TASK:[common|Installinitializtionrequiresoftware]*********************** changed:[172.17.0.5] TASK:[redis_install|CopyRedisSoftwareToRedhatClient]****************** ok:[172.17.0.5] TASK:[redis_install|CreateRedisInstallDir]****************************** ok:[172.17.0.5] TASK:[redis_install|UncompressionRedisSoftwareToRedhatClient]********* changed:[172.17.0.5] TASK:[redis_install|CopyRedisConfigToRedhatClient]******************** changed:[172.17.0.5] TASK:[redis_install|CreateSoftLinkInRedhatClient]********************* changed:[172.17.0.5]=>(item=redis-cli) changed:[172.17.0.5]=>(item=redis-server) TASK:[redis_install|CheckBootStartInRedhatClient]********************* failed:[172.17.0.5]=>{ "changed" : true , "cmd" : "grep-c'/usr/bin/redis-server/data/redis-2.6.17/conf/redis_6379.conf'/etc/rc.local" , "delta" : "0:00:00.007160" , "end" : "2014-08-1309:45:18.660617" , "item" : "" , "rc" :1, "start" : "2014-08-1309:45:18.653457" } stdout:0 ...ignoring TASK:[redis_install|AddBootStartInRedhatClient]*********************** changed:[172.17.0.5] TASK:[redis_install|StartRedisServiceInRedhatClient]****************** changed:[172.17.0.5] TASK:[redis_install|DeleteRediscompressionSoftwareInRedhatClient]**** changed:[172.17.0.5] PLAYRECAP******************************************************************** 172.17.0.5:ok=11changed=8unreachable=0failed=0 real 0m12.757s user 0m3.453s sys 0m0.497s 9、查看redis master安装情况 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 09:48:39 #ssh172.17.0.5 root@172.17.0.5'spassword: Lastlogin:WedAug1309:45:282014from172.17.42.1 root@06762530db8c:~ 09:48:43 #ps-ef|grepredis root2941009:45?00:00:00 /usr/bin/redis-server /data/redis-2 .6.17 /conf/redis_6379 .conf root343329009:48pts /0 00:00:00 grep redis root@06762530db8c:~ 09:48:46 #cat/etc/rc.local #!/bin/sh # #Thisscriptwillbeexecuted*after*alltheotherinitscripts. #Youcanputyourowninitializationstuffinhereifyoudon't #wanttodothefullSysVstyleinitstuff. touch /var/lock/subsys/local /usr/bin/redis-server /data/redis-2 .6.17 /conf/redis_6379 .conf root@06762530db8c:~ 09:48:52 #redis-cli-h172.17.0.5-p6379 redis172.17.0.5:6379>keys* (emptylistor set ) redis172.17.0.5:6379> 10、安装redis slave 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 09:45:20 #timeansible-playbookredis_install.yml--extra-vars"host=172.17.0.6user=rootredis_master_ip=172.17.0.5redis_master_port=6379"-k SSHpassword: PLAY[172.17.0.6]************************************************************* GATHERINGFACTS*************************************************************** ok:[172.17.0.6] TASK:[common|Installinitializtionrequiresoftware]*********************** changed:[172.17.0.6] TASK:[redis_install|CopyRedisSoftwareToRedhatClient]****************** changed:[172.17.0.6] TASK:[redis_install|CreateRedisInstallDir]****************************** ok:[172.17.0.6] TASK:[redis_install|UncompressionRedisSoftwareToRedhatClient]********* changed:[172.17.0.6] TASK:[redis_install|CopyRedisConfigToRedhatClient]******************** changed:[172.17.0.6] TASK:[redis_install|CreateSoftLinkInRedhatClient]********************* changed:[172.17.0.6]=>(item=redis-cli) changed:[172.17.0.6]=>(item=redis-server) TASK:[redis_install|CheckBootStartInRedhatClient]********************* failed:[172.17.0.6]=>{ "changed" : true , "cmd" : "grep-c'/usr/bin/redis-server/data/redis-2.6.17/conf/redis_6379.conf'/etc/rc.local" , "delta" : "0:00:00.006751" , "end" : "2014-08-1309:49:07.569522" , "item" : "" , "rc" :1, "start" : "2014-08-1309:49:07.562771" } stdout:0 ...ignoring TASK:[redis_install|AddBootStartInRedhatClient]*********************** changed:[172.17.0.6] TASK:[redis_install|StartRedisServiceInRedhatClient]****************** changed:[172.17.0.6] TASK:[redis_install|DeleteRediscompressionSoftwareInRedhatClient]**** changed:[172.17.0.6] PLAYRECAP******************************************************************** 172.17.0.6:ok=11changed=9unreachable=0failed=0 real 1m48.579s user 0m6.781s sys 0m0.654s 11、查看redis slave安装情况 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 09:59:24 #ssh172.17.0.6 root@172.17.0.6'spassword: root@dfec766fbaa7:~ 09:59:28 #ll total0 root@dfec766fbaa7:~ 09:59:31 #ps-ef|grepredis root1971009:49?00:00:00 /usr/bin/redis-server /data/redis-2 .6.17 /conf/redis_6379 .conf root227212009:59pts /0 00:00:00 grep redis 09:59:49 #grepslave/data/redis-2.6.17/conf/redis_6379.conf|egrep-v"^#" slaveof172.17.0.56379 slave-serve-stale-data yes slave- read -only yes slave-priority100 client-output-buffer-limitslave256mb64mb60 root@dfec766fbaa7:~ 10:00:09 #redis-cli-h172.17.0.6-p6379 redis172.17.0.6:6379>keys* (emptylistor set ) redis172.17.0.6:6379>info #Server redis_version:2.6.17 redis_git_sha1:00000000 redis_git_dirty:0 redis_mode:standalone os:Linux2.6.32-431.17.1.el6.x86_64x86_64 arch_bits:64 multiplexing_api:epoll gcc_version:4.4.7 process_id:197 run_id:81207df2727abe534ae606afc0cb80016f75a422 tcp_port:6379 uptime_in_seconds:685 uptime_in_days:0 hz:10 lru_clock:280339 #Clients connected_clients:2 client_longest_output_list:0 client_biggest_input_buf:0 blocked_clients:0 #Memory used_memory:878072 used_memory_human:857.49K used_memory_rss:7569408 used_memory_peak:877280 used_memory_peak_human:856.72K used_memory_lua:31744 mem_fragmentation_ratio:8.62 mem_allocator:jemalloc-3.2.0 #Persistence loading:0 rdb_changes_since_last_save:0 rdb_bgsave_in_progress:0 rdb_last_save_time:1407894548 rdb_last_bgsave_status:ok rdb_last_bgsave_time_sec:-1 rdb_current_bgsave_time_sec:-1 aof_enabled:0 aof_rewrite_in_progress:0 aof_rewrite_scheduled:0 aof_last_rewrite_time_sec:-1 aof_current_rewrite_time_sec:-1 aof_last_bgrewrite_status:ok #Stats total_connections_received:1 total_commands_processed:70 instantaneous_ops_per_sec:0 rejected_connections:0 expired_keys:0 evicted_keys:0 keyspace_hits:0 keyspace_misses:0 pubsub_channels:0 pubsub_patterns:0 latest_fork_usec:0 #Replication role:slave master_host:172.17.0.5 master_port:6379 master_link_status:up master_last_io_seconds_ago:1 master_sync_in_progress:0 slave_priority:100 slave_read_only:1 connected_slaves:0 #CPU used_cpu_sys:0.24 used_cpu_user:0.10 used_cpu_sys_children:0.00 used_cpu_user_children:0.00 #Keyspace 可以从上面的Replication里看到主从做好了,信息如下图 然后去redis master里查看主从信息 12、redis 主从测试 A.redis master插入key 1 2 3 4 5 6 7 8 redis172.17.0.5:6379> set master1 OK redis172.17.0.5:6379> set slave0 OK redis172.17.0.5:6379>getmaster "1" redis172.17.0.5:6379>getslave "0" B.redis slave读取key 1 2 3 4 5 6 7 redis172.17.0.6:6379>keys* 1) "master" 2) "slave" redis172.17.0.6:6379>getmaster "1" redis172.17.0.6:6379>getslave "0" 可以看到主从建立完成 下面是redis slave的日志情况 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 10:08:04 #cat/data/redis-2.6.17/log/redis_6379.log _._ _.-``__ '' -._ _.-```.`_. '' -._Redis2.6.17(00000000 /0 )64bit .-``.-```.```\/_.,_ '' -._ (',.-`|`,)Running in standalonemode |`-._`-...-`__...-.``-._| '`_.-' |Port:6379 |`-._`._/_.-'|PID:197 `-._`-._`-./_.- '_.-' |`-._`-._`-.__.- '_.-' _.-'| |`-._`-.__.- '_.-' |http: //redis .io `-._`-._`-.__.- '_.-' _.-' |`-._`-._`-.__.- '_.-' _.-'| |`-._`-.__.- '_.-' | `-._`-._`-.__.- '_.-' _.-' `-._`-.__.- '_.-' `-.__.-' `-.__.-' [197]13Aug09:49:08.878 #Serverstarted,Redisversion2.6.17 [197]13Aug09:49:08.879 #WARNINGovercommit_memoryissetto0!Backgroundsavemayfailunderlowmemorycondition.Tofixthisissueadd'vm.overcommit_memory=1'to/etc/sysctl.confandthenrebootorrunthecommand'sysctlvm.overcommit_memory=1'forthistotakeeffect. [197]13Aug09:49:08.879*Theserverisnowreadytoacceptconnectionsonport6379 [197]13Aug09:49:09.879*ConnectingtoMASTER172.17.0.5:6379 [197]13Aug09:49:09.879*MASTER<->SLAVE sync started [197]13Aug09:49:09.881*Nonblockingconnect for SYNCfiredtheevent. [197]13Aug09:49:09.881*MasterrepliedtoPING,replicationcan continue ... [197]13Aug09:49:10.035*MASTER<->SLAVE sync :receiving18bytesfrommaster [197]13Aug09:49:10.035*MASTER<->SLAVE sync :LoadingDB in memory [197]13Aug09:49:10.035*MASTER<->SLAVE sync :Finishedwithsuccess [197]13Aug10:04:56.980*1changes in 900seconds.Saving... [197]13Aug10:04:56.982*Backgroundsavingstartedbypid233 [233]13Aug10:04:57.226*DBsavedondisk [233]13Aug10:04:57.227*RDB:6MBofmemoryusedbycopy-on-write [197]13Aug10:04:57.293*Backgroundsavingterminatedwithsuccess 13、删除redis安装 无论redis主从,删除都是一样的命令 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 09:57:32 #timeansible-playbookredis_delete.yml--extra-vars"host=172.17.0.5user=root"-k SSHpassword: PLAY[172.17.0.5]************************************************************* GATHERINGFACTS*************************************************************** ok:[172.17.0.5] TASK:[redis_delete|StopRedisServiceInRedhatClient]******************** changed:[172.17.0.5] TASK:[redis_delete|DeleteRedisSoftLineInRedhatClient]**************** changed:[172.17.0.5]=>(item=redis-cli) changed:[172.17.0.5]=>(item=redis-server) TASK:[redis_delete|DeleteRedisDirInRedhatClient]********************** changed:[172.17.0.5] TASK:[redis_delete|DeleteBootStartInRedhatClient]********************* changed:[172.17.0.5] PLAYRECAP******************************************************************** 172.17.0.5:ok=5changed=4unreachable=0failed=0 real 0m6.929s user 0m1.942s sys 0m0.250s root@ip-10-10-10-10: /etc/ansible 10:09:18 #timeansible-playbookredis_delete.yml--extra-vars"host=172.17.0.6user=root"-k SSHpassword: PLAY[172.17.0.6]************************************************************* GATHERINGFACTS*************************************************************** ok:[172.17.0.6] TASK:[redis_delete|StopRedisServiceInRedhatClient]******************** changed:[172.17.0.6] TASK:[redis_delete|DeleteRedisSoftLineInRedhatClient]**************** changed:[172.17.0.6]=>(item=redis-cli) changed:[172.17.0.6]=>(item=redis-server) TASK:[redis_delete|DeleteRedisDirInRedhatClient]********************** changed:[172.17.0.6] TASK:[redis_delete|DeleteBootStartInRedhatClient]********************* changed:[172.17.0.6] PLAYRECAP******************************************************************** 172.17.0.6:ok=5changed=4unreachable=0failed=0 real 0m5.897s user 0m1.726s sys 0m0.258s 15、删除后测试 A.redis master上 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 10:09:55 #ifconfig eth0Linkencap:EthernetHWaddrC6:3A:D2:D9:DD:D9 inetaddr:172.17.0.5Bcast:0.0.0.0Mask:255.255.0.0 inet6addr:fe80::c43a:d2ff:fed9:ddd9 /64 Scope:Link UPBROADCASTRUNNINGMTU:1500Metric:1 RXpackets:13236errors:0dropped:0overruns:0frame:0 TXpackets:12843errors:0dropped:0overruns:0carrier:0 collisions:0txqueuelen:1000 RXbytes:26106313(24.8MiB)TXbytes:906412(885.1KiB) loLinkencap:LocalLoopback inetaddr:127.0.0.1Mask:255.0.0.0 inet6addr:::1 /128 Scope:Host UPLOOPBACKRUNNINGMTU:16436Metric:1 RXpackets:196errors:0dropped:0overruns:0frame:0 TXpackets:196errors:0dropped:0overruns:0carrier:0 collisions:0txqueuelen:0 RXbytes:9665(9.4KiB)TXbytes:9665(9.4KiB) root@06762530db8c:~ 10:09:56 #ps-ef|grepredis root431329010:09pts /0 00:00:00 grep redis root@06762530db8c:~ 10:09:59 #cat/etc/rc.local #!/bin/sh # #Thisscriptwillbeexecuted*after*alltheotherinitscripts. #Youcanputyourowninitializationstuffinhereifyoudon't #wanttodothefullSysVstyleinitstuff. touch /var/lock/subsys/local root@06762530db8c:~ 10:10:01 #ll/data/ total4 drwxr-xr-x2rootroot4096Jun510:21soft root@06762530db8c:~ B. redis slave上 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 10:08:09 #ifconfig eth0Linkencap:EthernetHWaddrBE:97:0C:B2:02:D9 inetaddr:172.17.0.6Bcast:0.0.0.0Mask:255.255.0.0 inet6addr:fe80::bc97:cff:feb2:2d9 /64 Scope:Link UPBROADCASTRUNNINGMTU:1500Metric:1 RXpackets:13062errors:0dropped:0overruns:0frame:0 TXpackets:12704errors:0dropped:0overruns:0carrier:0 collisions:0txqueuelen:1000 RXbytes:25967216(24.7MiB)TXbytes:842881(823.1KiB) loLinkencap:LocalLoopback inetaddr:127.0.0.1Mask:255.0.0.0 inet6addr:::1 /128 Scope:Host UPLOOPBACKRUNNINGMTU:16436Metric:1 RXpackets:86errors:0dropped:0overruns:0frame:0 TXpackets:86errors:0dropped:0overruns:0carrier:0 collisions:0txqueuelen:0 RXbytes:5288(5.1KiB)TXbytes:5288(5.1KiB) root@dfec766fbaa7:~ 10:10:32 #ps-ef|grepredis root319212010:10pts /0 00:00:00 grep redis root@dfec766fbaa7:~ 10:10:37 #cat/etc/rc.local #!/bin/sh # #Thisscriptwillbeexecuted*after*alltheotherinitscripts. #Youcanputyourowninitializationstuffinhereifyoudon't #wanttodothefullSysVstyleinitstuff. touch /var/lock/subsys/local root@dfec766fbaa7:~ 10:10:39 #ll/data/ total4 drwxr-xr-x2rootroot4096Jun510:21soft root@dfec766fbaa7:~ 如果大家想使用我的例子,可以从github里下载(地址是https://github.com/dl528888/ansible-examples/tree/master/redis_install),然后放到/etc/ansible目录里,下面是内容 本文转自 reinxu 51CTO博客,原文链接:http://blog.51cto.com/dl528888/1539251,如需转载请自行联系原作者

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册