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 root@192.168.8.242

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 root@192.168.8.247:/root/.ssh/

[root@kick ~]# scp .ssh/id_rsa .ssh/authorized_keys root@192.168.8.246:/root/.ssh/

[root@kick ~]# scp .ssh/id_rsa .ssh/authorized_keys root@192.168.8.243:/root/.ssh/

[root@kick ~]# scp .ssh/id_rsa .ssh/authorized_keys root@192.168.8.242:/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

123456

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 root@192.168.8.247:/usr/share/tomcat/lib/


# 再次配置ansbile 本地的tomcat配置文件 新增如下信息


      <Host name="localhost"  appBase="webapps"

            unpackWARs="true" autoDeploy="true">

            <Context path="" docBase="/www/html"

                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