码迷,mamicode.com
首页 > 其他好文 > 详细

[ansible]牛刀小试,使用ansible-playbook role方式部署jdk环境

时间:2018-02-03 15:54:35      阅读:289      评论:0      收藏:0      [点我收藏+]

标签:lin   目录   task   pre   book   ase   cts   拷贝   发布程序   

前言:

role是playbook文件的一种管理方式,通过对playbook的目录结构进行规范,在playbook文件多了的情况下,可以方便的进行管理和维护。

这里通过LINUX环境下JDK的部署,简单介绍role的使用方式。


1、新建部署程序目录

mkdir -p jdk_install/roles/{common,delete,install}/{handlers,files,meta,tasks,templates,vars}


2、拷贝文件到部署目录下

cp ~/jdk1.8.0_60.tar.gz  jdk_install/roles/install/files/
cp ~/.bash_profilejdk_install/roles/install/files/


3、发布程序主机上目录结构如下,部分用不到的空目录我已删除

[try@localhost roles]$ pwd
/home/try/tryansible/jdk_install/roles
[try@localhost roles]$ tree -a
.
|-- install
|   |-- files
|   |   |-- .bash_profile           ####用户环境变量文件
|   |   `-- jdk1.8.0_60.tar.gz      ####JDK压缩包
|   |-- handlers
|   |-- tasks
|   |   |-- copy.yml                ####执行复制操作
|   |   `-- main.yml                ####任务入口
|   `-- vars
|       `-- main.yml               ####变量信息
`-- install.yml                       ####程序入口


YAML文件内容

cat install.yml

---
- hosts: 192.168.1.1
  #remote_user: root
  #gather_facts: True
  roles:
    - install


cat install/vars/main.yml 

jdk_basedir: /home/try    ####程序安装目录


cat install/tasks/main.yml 

- include: copy.yml    ####task入口信息,指定执行copy.yml


cat install/tasks/copy.yml         

- name: Copy JDK Software
  copy: src=jdk1.8.0_60.tar.gz dest={{ jdk_basedir }}/        ####拷贝jdk文件
- name: Uncompression JDK Software
  shell: tar xzf {{ jdk_basedir }}/jdk1.8.0_60.tar.gz         ####解压缩文件
- name: Copy JDK env .bash_profile
  copy: src=.bash_profile dest={{ jdk_basedir }}/             ####复制环境变量文件

  

cat install/files/.bash_profile 

# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi
# User specific environment and startup programs
export JAVA_HOME=/home/try/jdk1.8.0_60 
export LD_LIBRARY_PATH=$JAVA_HOME/lib:$LD_LIBRARY_PATH
export PATH=$JAVA_HOME/bin:$HOME/bin:$PATH


4、执行部署操作

[try@localhost roles]$ ansible-playbook install.yml -k                          
SSH password: 
PLAY [192.168.1.1] *************************************************************
TASK [setup] *******************************************************************
ok: [192.168.1.1]
TASK [install : Copy JDK Software] *********************************************
changed: [192.168.1.1]
TASK [install : Uncompression JDK Software] ************************************
changed: [192.168.1.1]
 [WARNING]: Consider using unarchive module rather than running tar
TASK [install : Copy JDK env .bash_profile] ************************************
changed: [192.168.1.1]
PLAY RECAP *********************************************************************
192.168.1.1                : ok=4    changed=3    unreachable=0    failed=0

 


这时候到192.168.1.1上可以看到JDK文件已经解压,执行source .bash_profile,然后再运行java -version && javac version,可以看到jdk的版本已经都为1.8.0_60,部署实施完成。


[ansible]牛刀小试,使用ansible-playbook role方式部署jdk环境

标签:lin   目录   task   pre   book   ase   cts   拷贝   发布程序   

原文地址:http://blog.51cto.com/tryagaintry/2068471

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!