OwlFocus

Via


  • 首页

  • 分类

  • 归档

  • 标签

  • 搜索
close
OwlFocus

使用Ansible发布Jetty服务

发表于 2017-05-01 | 分类于 program

构建Jetty部署yml

新建一个ansibledeployjetty.yml文件,增加以下脚本:

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
- name: install jetty admin
hosts: jetty hosts #对应hostsz中主机内容
sudo: True
vars: #定义变量区域
war_file: /home/jettyappweb.war #本地文件
jetty_root: /home/pft/pft-web-base/webapps/ROOT #部署的远程ROOT目录
tasks:
- name: rm ROOT.
file:
state: absent
dest: "{{ jetty_root }}"
- name: mkdir ROOT.
file:
state: directory
dest: "{{ jetty_root }}"
owner: root
group: root
mode: 755
- name: unzip war.
unarchive:
src: "{{ war_file }}"
dest: "{{ jetty_root }}"
copy: yes
- name: start jetty.
action: shell {{ jetty_root }}/../../bin/start.sh

说明

  • hosts #对应host中主机内容
  • vars #定义变量区域
  • 删除ROOT文件夹 使用file: state:absent,好处防止错误删除文件。
  • 使用unarchive命令,copy:yes直接拷贝本地文件到远程,并且解压缩后删除文件。
  • action: shell 启动jetty服务。

启动部署脚本

1
ansible-playbook ansibledeployjetty.yml -vvv

jetty 启动脚本start.sh

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#!/bin/bash
# JAVA_HOME
export JAVA_HOME=/var/java/jdk1.8.0_111
export PATH=$JAVA_HOME/bin:$PATH
JAVA_JMX_OPTS=""
if [ "$1" = "jmx" ]; then
JAVA_JMX_OPTS=" -Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmx -Dcom.sun.management.jmxremote.authenticate=true -Dcom.sun.management.jmxremote.password.file=../conf/jmx/jmxremote.password -Dcom.sun.management.jmxremote.access.file=../conf/jmx/jmxremote.access"
fi
JAVA_MEM_OPTS=""
BITS=`java -version 2>&1 | grep -i 64-bit`
if [ -n "$BITS" ]; then
JAVA_MEM_OPTS=" -server -Xmx512m -Xms512m -Xmn128m -Xss256k -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:LargePageSizeInBytes=128m -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70 "
else
JAVA_MEM_OPTS=" -server -Xms512m -Xmx512m -XX:PermSize=128m -XX:SurvivorRatio=2 -XX:+UseParallelGC "
fi
export JAVA_OPTS
nohup java $JAVA_OPTS $JAVA_JMX_OPTS $JAVA_MEM_OPTS -jar /usr/local/jetty9/start.jar jetty.base=/home/pft/pft-web-base &

常见模块说明

File模块

功能:用于设置文件属性

  • name: 设置文件属性
    action: file
    force # 需要在两种情况下强制创建软连接,一种是源文件不存在但之后会建立的情况下;另一种是目标连接已存在,需要先取消之前的软连接,有两个选项:yes|no
    group # 设置文件或目录的属组
    mode # 设置文件或目录的权限
    owner # 设置文件或目录的属主
    path # 必选项,定义文件或目录的路径
    recurse # 递归设置文件的属性,只对目录有效
    src # 要被链接到的路径,只应用与state=link的情况
    state # directory:如果目录不存在,创建目录;file:即使文件不存在,也不会被创建;link:创建软连接;hard:创建硬连接;touch:如果文件不存在,则会创建一个新的文件,如果文件或目录已存在,则更新其最后修改时间;absent:删除目录、文件或者取消链接文件

Command模块

功能:命令模块,默认模块,用于在远程主机执行命令,缺点:运行的命令中无法使用变量,管道。

  • name: 在远程节点执行命令
    action #command
    chdir #在执行命令之前,先切换到该目录
    creates #一个文件名,当这个文件存在,则该命令不执行
    executable #切换shell来执行命令,需要使用命令的绝对路径
    free_form #要执行的Linux指令,一般使用Ansible的-a参数代替。
    removes #一个文件名,这个文件不存在,则该命令不执行

unarchive模块

功能:用于解压文件,模块包含如下选项:
copy #在解压文件之前,是否先将文件复制到远程主机,默认为yes。若为no,则要求目标主机上压缩包必须存在。
creates #指定一个文件名,当该文件存在时,则解压指令不执行
dest #远程主机上的一个路径,即文件解压的路径
grop #解压后的目录或文件的属组
list_files #如果为yes,则会列出压缩包里的文件,默认为no,2.0版本新增的选项
mode #解决后文件的权限
src #如果copy为yes,则需要指定压缩文件的源路径
owner #解压后文件或目录的属主

OwlFocus

幸福的婚姻

发表于 2017-04-30 | 分类于 life
  1. 不是男人天生比女人更容易有婚外情,这个概率更多取决于机会。

  2. 聪明的丈夫一定要明白这一点:妻子希望听到的不是建议,相反,她想听到的是丈夫对自己遭遇的理解与同情。只要你表现出善解人意和体贴,让她释放出烦恼和压力,她就会回报你更多的感激和爱。

  3. 和出去度假相比,夫妻间互相交流,会让婚姻更稳定、更有激情。

  4. 冲突的解决不在于改变一个人,而在于协商寻找共同点,找到双方都能适应的方法,要学会把对方的缺点和怪癖看作是他性格中一个有趣的部分。

OwlFocus

ansible ssh error

发表于 2017-04-29 | 分类于 program

ansible 使用ssh连接其他主机时,遇到了ssh 权限错误:

执行命令

1
ansible bogon -m command -a 'uptime'

错误信息

1
2
3
4
5
192.168.20.240 | UNREACHABLE! => {
"changed": false,
"msg": "Failed to connect to the host via ssh: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).\r\n",
"unreachable": true
}

查看详细的帮助信息

使用-vvvv重新运行命令,这将使SSH调试输出来帮助诊断问题

1
ansible bogon -m command -a 'uptime' –vvvv

解决

解决两个主机ssh免密码登录即可。

1…141516…55
ljzhuanjiao@gmail.com

ljzhuanjiao@gmail.com

在快节奏时代,我不能在慢中消亡!!!

163 日志
5 分类
53 标签
© 2016 - 2018 ljzhuanjiao@gmail.com
由 Hexo 强力驱动
主题 - NexT.Pisces