ansible管理機:192.168.8.35 名稱:kick
tomcat主機: 192.168.8.247,192.168.8.246
memcache : 192.168.8.243,192.168.8.242
系統版本: Centos7.2
MSM--memcached session manager是一個高可用的Tomcat session共享解決方案,除了可以從本機記憶體快速讀取Session資訊(僅針對黏性Session)外,同時可使用memcached存取Session,以實作高可用,對于非黏性Session,memcached直接存儲session
################ 首先需要創一個.ssh目錄 ###############
#!/usr/bin/expect
#
set timeout 30
spawn ssh [email protected]
expect {
"yes/no" {
send "yes\r";exp_continue
}
"password" {
send "xiong123\r"
}
expect "~]# "
send "mkdir /root/.ssh\r"
send "ls /root -la\r"
expect eof
exit
# 建立雙機互信
[root@kick ~]# scp .ssh/id_rsa .ssh/authorized_keys [email protected]:/root/.ssh/
[root@kick ~]# scp .ssh/id_rsa .ssh/authorized_keys [email protected]:/root/.ssh/
[root@kick ~]# scp .ssh/id_rsa .ssh/authorized_keys [email protected]:/root/.ssh/
[root@kick ~]# scp .ssh/id_rsa .ssh/authorized_keys [email protected]:/root/.ssh/
# 安裝tomcat啟動并開機自動啟動
[root@kick ~]# ansible tomcat -m yum -a "name=tomcat state=installed"
[root@kick ~]# ansible tomcat -m shell -a "systemctl start tomcat"
[root@kick ~]# ansible tomcat -m shell -a "systemctl enable tomcat"
# 複制主機中的server.xml配置檔案至本地進行簡單配置
[root@kick ~]# scp 192.168.8.247:/etc/tomcat/server.xml .
# Host段增加通路路徑為/www/html
[root@kick ~]# vim server.xml
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Context path="" docBase="/www/html"
reloadable="true" crossContext="true"/>
# 将配置檔案直接複制到各伺服器中
[root@kick ~]# ansible tomcat -m copy -a "src=server.xml dest=/etc/tomcat/"
# 建立通路項目目錄,并建立一個index.html檔案并直接使用http://ipaddr:8080通路
[root@kick ~]# ansible tomcat -m shell -a "mkdir /www/html -pv"
# 安裝啟動并設定開機自動啟動
[root@kick ~]# ansible memc -m yum -a "name=memcached state=installed"
[root@kick ~]# ansible memc -m shell -a "systemctl start memcached"
[root@kick ~]# ansible memc -m shell -a "systemctl enable memcached"
# 檢視memcacehd伺服器狀态
[root@kick ~]# ansible memc -m shell -a "systemctl status memcached"
# 如果需要理改選項需要在/etc/sysconfig/memcached中options中增加
# 檢查服務是否安裝成功
[root@kick ~]# telnet 192.168.8.243 11211
#測試: set 定義值的名稱 檢索 逾時時長秒 長度
set mykey 0 60 6
123456
STORED
get mykey
VALUE mykey 0 6
END
# 另外一台一樣的操作
# quit直接退出 stats檢視狀态資訊
# 下載下傳msm軟體包 下載下傳位址:https://github.com/magro/memcached-session-manager/wiki/SetupAndConfiguration#overview-over-memcached-session-manager-configuration-attributes
# 軟體包:
javolution-5.4.3.1.jar
memcached-session-manager-2.1.1.jar
memcached-session-manager-tc7-2.1.1.jar # tomcat是1.7那麼就下tc7其它的一樣,比如8就下8
msm-javolution-serializer-2.1.1.jar
spymemcached-2.11.1.jar
# 兩個tomcat機器都需要複制檔案
[root@kick msm]# scp *.jar [email protected]:/usr/share/tomcat/lib/
# 再次配置ansbile 本地的tomcat配置檔案 新增如下資訊
reloadable="true" crossContext="true">
#管理名稱為memcached
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
# memcached節點有哪些定義
memcachedNodes="n1:192.168.8.243:11211,n2:192.168.8.242:11211"
# 故障轉換節點(備份節點是哪一個)
failoverNodes="n1"
requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
transcoderFactoryClass="de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory"
/>
</Context>
# 将修改的.xml檔案複制到tomcat節點中去,然後重新開機服務并檢視狀态值
[root@kick ~]# ansible tomcat -m copy -a "src=server.xml dest=/etc/tomcat/server.xml"
[root@kick ~]# ansible tomcat -m shell -a "systemctl restart tomcat"
[root@kick ~]# ansible tomcat -m shell -a "systemctl status tomcat"
##########nginx負載 ##########
http://xiong51.blog.51cto.com/5239058/1941194
本文轉自812374156 51CTO部落格,原文連結:http://blog.51cto.com/xiong51/1941193,如需轉載請自行聯系原作者