09:49:09 # docker version
Client version: 0.11.1
Client API version: 1.11
Go version (client): go1.2.1
Git commit (client): fb99f99/0.11.1
Server version: 0.11.1
Server API version: 1.11
Git commit (server): fb99f99/0.11.1
Go version (server): go1.2.1
Last stable version: 1.1.2, please update docker ansible版本
09:51:55 # ansible --version
ansible 1.4.3 1、查看已有的docker镜像
09:39:26 # docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
ubuntu 3.0 6cee55276528 9 weeks ago 369.8 MB
centos5 3.0 e08d23b09189 9 weeks ago 840.9 MB
centos6 3.0 e94a3b24a19b 9 weeks ago 415.9 MB 2、查看当前运行的docker容器
09:39:47 # docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
846efb9e4d7a ubuntu:3.0 /usr/sbin/sshd -D 2 weeks ago Up 6 days 0.0.0.0:49167->22/tcp ubuntu-test1
b9a9e6f2caed centos6:3.0 /usr/sbin/sshd -D 3 weeks ago Up 6 days 0.0.0.0:49166->22/tcp zabbix-server
978fff134b18 centos6:3.0 /usr/sbin/sshd -D 5 weeks ago Up 6 days 0.0.0.0:49165->22/tcp centos6-test5
root@ip-10-10-10-10:/etc/ansible/roles/redis_install/templates 3、加载测试容器
由于是做redis主从,所以需要2个容器
09:39:50 # time docker inspect $(docker run -d -p 22 --name="redis-master" centos6:3.0 /usr/sbin/sshd -D)|grep -i address|awk -F '"' '{print $4}'
172.17.0.5
real0m6.369s
user0m0.036s
sys0m0.049s
root@ip-10-10-10-10:/etc/ansible/roles/redis_install/templates
09:40:25 # time docker inspect $(docker run -d -p 22 --name="redis-slave" centos6:3.0 /usr/sbin/sshd -D)|grep -i address|awk -F '"' '{print $4}'
172.17.0.6
real0m12.567s
user0m0.047s
sys0m0.060s 然后把新容器的ip加入到ansible的hosts里
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的信息
12、redis 主从测试
A.redis master插入key
redis 172.17.0.5:6379> set master 1
OK
redis 172.17.0.5:6379> set slave 0
OK
redis 172.17.0.5:6379> get master
"1"
redis 172.17.0.5:6379> get slave
"0" B.redis slave读取key
redis 172.17.0.6:6379> keys *
1) "master"
2) "slave"
redis 172.17.0.6:6379> get master
"1"
redis 172.17.0.6:6379> get slave
"0" 可以看到主从建立完成
下面是redis slave的日志情况
10:08:04 # cat /data/redis-2.6.17/log/redis_6379.log
_._
_.-``__ ''-._
_.-`` `. `_. ''-._ Redis 2.6.17 (00000000/0) 64 bit
.-`` .-```. ```\/ _.,_ ''-._
( ' , .-` | `, ) Running in stand alone mode
|`-._`-...-` __...-.``-._|'` _.-'| Port: 6379
| `-._ `._ / _.-' | PID: 197
`-._ `-._ `-./ _.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' | http://redis.io
`-._ `-._`-.__.-'_.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' |
`-._ `-._`-.__.-'_.-' _.-'
`-._ `-.__.-' _.-'
`-._ _.-'
`-.__.-'
[197] 13 Aug 09:49:08.878 # Server started, Redis version 2.6.17
[197] 13 Aug 09:49:08.879 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
[197] 13 Aug 09:49:08.879 * The server is now ready to accept connections on port 6379
[197] 13 Aug 09:49:09.879 * Connecting to MASTER 172.17.0.5:6379
[197] 13 Aug 09:49:09.879 * MASTER <-> SLAVE sync started
[197] 13 Aug 09:49:09.881 * Non blocking connect for SYNC fired the event.
[197] 13 Aug 09:49:09.881 * Master replied to PING, replication can continue...
[197] 13 Aug 09:49:10.035 * MASTER <-> SLAVE sync: receiving 18 bytes from master
[197] 13 Aug 09:49:10.035 * MASTER <-> SLAVE sync: Loading DB in memory
[197] 13 Aug 09:49:10.035 * MASTER <-> SLAVE sync: Finished with success
[197] 13 Aug 10:04:56.980 * 1 changes in 900 seconds. Saving...
[197] 13 Aug 10:04:56.982 * Background saving started by pid 233
[233] 13 Aug 10:04:57.226 * DB saved on disk
[233] 13 Aug 10:04:57.227 * RDB: 6 MB of memory used by copy-on-write
[197] 13 Aug 10:04:57.293 * Background saving terminated with success 13、删除redis安装
无论redis主从,删除都是一样的命令
09:57:32 # time ansible-playbook redis_delete.yml --extra-vars "host=172.17.0.5 user=root" -k
SSH password:
PLAY [172.17.0.5] *************************************************************
GATHERING FACTS ***************************************************************
ok: [172.17.0.5]
TASK: [redis_delete | Stop Redis Service In Redhat Client] ********************
changed: [172.17.0.5]
TASK: [redis_delete | Delete Redis Soft Line In Redhat Client] ****************
changed: [172.17.0.5] => (item=redis-cli)
changed: [172.17.0.5] => (item=redis-server)
TASK: [redis_delete | Delete Redis Dir In Redhat Client] **********************
changed: [172.17.0.5]
TASK: [redis_delete | Delete Boot Start In Redhat Client] *********************
changed: [172.17.0.5]
PLAY RECAP ********************************************************************
172.17.0.5 : ok=5 changed=4 unreachable=0 failed=0
real0m6.929s
user0m1.942s
sys0m0.250s
root@ip-10-10-10-10:/etc/ansible
10:09:18 # time ansible-playbook redis_delete.yml --extra-vars "host=172.17.0.6 user=root" -k
SSH password:
PLAY [172.17.0.6] *************************************************************
GATHERING FACTS ***************************************************************
ok: [172.17.0.6]
TASK: [redis_delete | Stop Redis Service In Redhat Client] ********************
changed: [172.17.0.6]
TASK: [redis_delete | Delete Redis Soft Line In Redhat Client] ****************
changed: [172.17.0.6] => (item=redis-cli)
changed: [172.17.0.6] => (item=redis-server)
TASK: [redis_delete | Delete Redis Dir In Redhat Client] **********************
changed: [172.17.0.6]
TASK: [redis_delete | Delete Boot Start In Redhat Client] *********************
changed: [172.17.0.6]
PLAY RECAP ********************************************************************
172.17.0.6 : ok=5 changed=4 unreachable=0 failed=0