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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[ansible]牛刀小试,使用ansible-playbook role方式部署jdk环境相关的知识,希望对你有一定的参考价值。

前言:

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、发布程序主机上目录结构如下,部分用不到的空目录我已删除

[[email protected] roles]$ pwd
/home/try/tryansible/jdk_install/roles
[[email protected] 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、执行部署操作

[[email protected] 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环境的主要内容,如果未能解决你的问题,请参考以下文章

ansible小试牛刀

saltstack小试牛刀

小试牛刀之python实现批量获取主机相关数据

用ansible 完成一次性的工作(ad-Hoc)工作

使用IEEE802.1Q VLAN实现单线复用之牛刀小试篇

牛刀小试之Django二