playbook 剧本如下

[root@sz_fy_virt_encrypt_33_239 x]# cat jdk.yml
- hosts: web
remote_user: opsadmin
become: yes
become_method: sudo
become_user: root
tasks:
- name: copy jdk to remote hosts
copy: src=jdk-8u45-linux-x64.tar.gz dest=/tmp/ - name: tar jdk
shell: tar xf /tmp/jdk-8u45-linux-x64.tar.gz -C /usr/local/ - name: link
file: src=/usr/local/jdk1..0_45 dest=/usr/local/jdk state=link - name: java_env
shell: /bin/echo {{ item }} >> /etc/profile && source /etc/profile
with_items:
- export JAVA_HOME=/usr/local/jdk
- export JRE_HOME=/usr/local/jdk/jre
- export CLASSPATH=.:\$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:\$JRE_HOME/lib:\$CLASSPATH
- export PATH=\$JAVA_HOME/bin:\$PATH /etc/ansible/hosts

192.168.11.172 ansible_user=opsadmin ansible_sudo_pass="x" ansible_ssh_port=12600
192.168.11.173 ansible_user=opsadmin ansible_sudo_pass="x" ansible_ssh_port=12600
192.168.11.174 ansible_user=opsadmin ansible_sudo_pass="x" ansible_ssh_port=12600

ansible-playbook --syntax-check jdk.yml

ansible-playbook -C jdk.yml  #tar 命令  用-C 检测参数 看来是模拟不了

正式执行结果如下

[opsadmin@sz x]$ ansible-playbook  jdk.yml 

PLAY [web] *******************************************************************************************************************************************************************************************************************************************************************

TASK [Gathering Facts] *******************************************************************************************************************************************************************************************************************************************************
ok: [192.168.11.173]
ok: [192.168.11.174]
ok: [192.168.11.172] TASK [copy jdk to remote hosts] **********************************************************************************************************************************************************************************************************************************************
changed: [192.168.11.174]
changed: [192.168.11.172]
changed: [192.168.11.173] TASK [tar jdk] ***************************************************************************************************************************************************************************************************************************************************************
[WARNING]: Consider using the unarchive module rather than running tar. If you need to use command because unarchive is insufficient you can add warn=False to this command task or set command_warnings=False in ansible.cfg to get rid of this message. changed: [192.168.11.174]
changed: [192.168.11.173]
changed: [192.168.11.172] TASK [link] ******************************************************************************************************************************************************************************************************************************************************************
changed: [192.168.11.172]
changed: [192.168.11.174]
changed: [192.168.11.173] TASK [java_env] **************************************************************************************************************************************************************************************************************************************************************
changed: [192.168.11.172] => (item=export JAVA_HOME=/usr/local/jdk)
changed: [192.168.11.173] => (item=export JAVA_HOME=/usr/local/jdk)
changed: [192.168.11.174] => (item=export JAVA_HOME=/usr/local/jdk)
changed: [192.168.11.172] => (item=export JRE_HOME=/usr/local/jdk/jre)
changed: [192.168.11.173] => (item=export JRE_HOME=/usr/local/jdk/jre)
changed: [192.168.11.174] => (item=export JRE_HOME=/usr/local/jdk/jre)
changed: [192.168.11.172] => (item=export CLASSPATH=.:\$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:\$JRE_HOME/lib:\$CLASSPATH)
changed: [192.168.11.174] => (item=export CLASSPATH=.:\$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:\$JRE_HOME/lib:\$CLASSPATH)
changed: [192.168.11.173] => (item=export CLASSPATH=.:\$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:\$JRE_HOME/lib:\$CLASSPATH)
changed: [192.168.11.172] => (item=export PATH=\$JAVA_HOME/bin:\$PATH)
changed: [192.168.11.174] => (item=export PATH=\$JAVA_HOME/bin:\$PATH)
changed: [192.168.11.173] => (item=export PATH=\$JAVA_HOME/bin:\$PATH) PLAY RECAP *******************************************************************************************************************************************************************************************************************************************************************
192.168.11.172 : ok= changed= unreachable= failed=
192.168.11.173 : ok= changed= unreachable= failed=
192.168.11.174 : ok= changed= unreachable= failed=

检查结果

ansible 部署jdk的更多相关文章

  1. CentOSLinux系统中Ansible自动化运维的安装以及利用Ansible部署JDK和Hadoop

    Ansible 安装和配置 Ansible 说明 Ansible 官网:https://www.ansible.com/ Ansible 官网 Github:https://github.com/an ...

  2. 使用ansible部署CDH 5.15.1大数据集群

    使用ansible离线部署CDH 5.15.1大数据集群 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在此之前,我之前分享过使用shell自定义脚本部署大数据集群,不管是部署CD ...

  3. 001.Ansible部署RHCS存储集群

    一 前期准备 1.1 前置条件 至少有三个不同的主机运行monitor (MON)节点: 至少三个直接存储(非外部SAN硬件)的OSD节点主: 至少两个不同的manager (MGR)节点: 如果使用 ...

  4. linux下部署jdk+Tomcat

    部署jdk (如果是普通用户,先切换到管理员 su root) 1.下载jdk压缩包 2.用xftp将jdk压缩包传输 /opt 目录下 3.解压(在/opt 目录下对压缩包解压) tar -xzvf ...

  5. 使用Ansible部署etcd 3.2高可用集群

    之前写过一篇手动搭建etcd 3.1集群的文章<etcd 3.1 高可用集群搭建>,最近要初始化一套新的环境,考虑用ansible自动化部署整套环境, 先从部署etcd 3.2集群开始. ...

  6. linux服务器上部署jdk+tomcat+rocketmq+redis-cluster

    通常我们拿到一组干净的linux服务器,需要初始化安装一些基础软件,这里一站式介绍部署jdk+tomcat+rocketmq+redis-cluster 前言:如果要在多台服务器上安装,在一台服务器上 ...

  7. 如何在Cent OS上安装和部署jdk与tomcat?

    Cent OS是一款Linux系统.在商业应用中,Linux操作系统在服务器市场有着广泛的运用,这源于Linux系统的几大优点: 1.跨平台的硬件支持 由于Linux 的内核大部分是用C 语言编写的, ...

  8. ansible部署,规划

    部署管理服务器 第一步:先检查有没有ssh服务 [root@iZm5eeyc1al5vzh8bo57zyZ ~]# rpm -qf /etc/init.d/sshd openssh-server-5. ...

  9. CentOS7.5 -- Ansible部署与应用

    第1章 Ansible概述 Ansible是一个配置管理系统configuration management system python 语言是运维人员必须会的语言 ansible 是一个基于pyth ...

随机推荐

  1. 静态栈抽象数据类型stack实现

    #include<stdio.h> #include<stdbool.h> #include<stdlib.h> #define MAX_STACK_SIZE 10 ...

  2. 嵌入式框架Zorb Framework搭建七:任务的实现

    我是卓波,我是一名嵌入式工程师,我万万没想到我会在这里跟大家吹牛皮. 嵌入式框架Zorb Framework搭建过程 嵌入式框架Zorb Framework搭建一:嵌入式环境搭建.调试输出和建立时间系 ...

  3. (数据科学学习手札09)系统聚类算法Python与R的比较

    上一篇笔者以自己编写代码的方式实现了重心法下的系统聚类(又称层次聚类)算法,通过与Scipy和R中各自自带的系统聚类方法进行比较,显然这些权威的快捷方法更为高效,那么本篇就系统地介绍一下Python与 ...

  4. 12、K最近邻算法(KNN算法)

    一.如何创建推荐系统? 找到与用户相似的其他用户,然后把其他用户喜欢的东西推荐给用户.这就是K最近邻算法的分类作用. 二.抽取特征 推荐系统最重要的工作是:将用户的特征抽取出来并转化为度量的数字,然后 ...

  5. 利用JS调取电脑摄像头,实现拍照功能

    1.调取电脑摄像头非常简单,看代码一幕了然 window.addEventListener("DOMContentLoaded", function() { var canvas ...

  6. Delphi中ModalResult的使用

    Delphi中ModalResult的功能非常实用. 在自己设计的Dialog界面中,选择相应的按钮,设置按钮的 ModalResult属性为mrOK .mrCancel 等.这样的设置,当按下该按钮 ...

  7. 事务消息中心-TMC

    此文已由作者杨凯明授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 背景 为什么要做事务消息中心 原有kqueue的方式缺点: 降低业务库性能 占用业务库磁盘 历史数据管理成本 ...

  8. 1087 All Roads Lead to Rome (30 分)(最短路径)

    直接用Dijkstra做 #include<bits/stdc++.h> using namespace std; int n,m; map<string,int>si; ma ...

  9. GraphSAGE 代码解析(一) - unsupervised_train.py

    原创文章-转载请注明出处哦.其他部分内容参见以下链接- GraphSAGE 代码解析(二) - layers.py GraphSAGE 代码解析(三) - aggregators.py GraphSA ...

  10. Window.open()方法参数详解总结(转)

    1, 最基本的弹出窗口代码   window.open('page.html'); 2, 经过设置后的弹出窗口   window.open('page.html', 'newwindow', 'hei ...