标签: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