首页 文章 精选 留言 我的

精选列表

搜索[自动装配],共10015篇文章
优秀的个人博客,低调大师

ansible安装配置和基本使用

一、ansible安装 ansible依赖于Python 2.6或更高的版本、paramiko、PyYAML及Jinja2。 1.1 编译安装 解决依赖关系 #yum-yinstallpython-jinja2PyYAMLpython-paramikopython-babelpython-crypto 解压安装包 #tarxfansible-1.5.4.tar.gz #cdansible-1.5.4 编译安装 #pythonsetup.pybuild #pythonsetup.pyinstall 拷贝配置文件 #mkdir/etc/ansible #cp-rexamples/*/etc/ansible 1.2 rpm包安装 使用阿里云镜像源即可,这里为了方便使用,就直接使用yum安装了。 Fedora用户可直接安装Ansible,但RHEL或CentOS用户,需要配置EPEL #yuminstall-yepel-release #yuminstall-yansible 注意:不同版本的ansible的功能差异可能较大。 二、配置 配置文件介绍: 配置文件:/etc/ansible/ansible.cfg hostfile=/etc/ansible/hosts#指定默认hosts配置的位置 host_key_checking=False#不进行host_key检查,省去目标key发生变化时输入(yes/no)的步骤 ask_pass=True#每次执行ansible命令是否询问ssh密码 ask_sudo_pass=True#每次执行ansible命令时是否询问sudo密码 主机清单:/etc/ansible/hosts 主程序:ansible、ansible paly-book、ansible-doc 1.将要管理的主机纳入/etc/ansible/hosts配置文件中,可以填写IP或是主机名 [WebServers] 10.10.10.3 10.10.10.4 2.基于ssh的方式与被管理的主机进行通信,在管理的主机上(部署ansible的主机上)生成一对非对称密钥,将公钥发给被管理的主机。 (1)生成一对密钥:ssh-keygen -t rsa [root@wlmyum.repos.d]#ssh-keygen-trsa#默认存放的地方为/root/.ssh目录下 Generatingpublic/privatersakeypair. Enterfileinwhichtosavethekey(/root/.ssh/id_rsa): Enterpassphrase(emptyfornopassphrase): Entersamepassphraseagain: Youridentificationhasbeensavedin/root/.ssh/id_rsa. Yourpublickeyhasbeensavedin/root/.ssh/id_rsa.pub. Thekeyfingerprintis: e8:60:67:4d:29:90:d2:4d:7d:52:2f:c7:e4:87:a4:80root@wlm Thekey'srandomartp_w_picpathis: +--[RSA2048]----+ |..+.o...o| |.o.Eoo.B.| |..ooo*.| |=o.| |o+S| |.=| |.| || || +-----------------+ (2)将公钥发给要管理的主机:ssh-copy-id -i /root/.ssh/id_rsa.pub root@10.10.10.3 [root@wlmyum.repos.d]#ssh-copy-id-i/root/.ssh/id_rsa.pubroot@10.10.10.4 Theauthenticityofhost'10.10.10.4(10.10.10.4)'can'tbeestablished. RSAkeyfingerprintis43:8a:cc:2c:6a:07:0e:16:17:04:b5:dd:2c:4a:9a:41. Areyousureyouwanttocontinueconnecting(yes/no)?yes /usr/bin/ssh-copy-id:INFO:attemptingtologinwiththenewkey(s),tofilteroutanythatarealreadyinstalled /usr/bin/ssh-copy-id:INFO:1key(s)remaintobeinstalled--ifyouarepromptednowitistoinstallthenewkeys root@10.10.10.4'spassword: Permissiondenied,pleasetryagain. root@10.10.10.4'spassword: Numberofkey(s)added:1 Nowtryloggingintothemachine,with:"ssh'root@10.10.10.4'" andchecktomakesurethatonlythekey(s)youwantedwereadded. 3.开始使用我们的第一条ansible命令,进行验证: #ansibleall-mping [root@wlmyum.repos.d]#ansibleall-mping 10.10.10.4|SUCCESS=>{ "changed":false, "ping":"pong" } 10.10.10.3|SUCCESS=>{ "changed":false, "ping":"pong" } 命令介绍: 简单实用格式:ansible<host-pattern>[-mmodule_name][-aargs][options] ansibleall-mping: all代表所有被管理的主机都进行操作-mping指定使用ping模块,ping通了返回的结果为pong 三、基本使用 1.常用命令 ansible-doc命令:获取模块列表,及模块使用格式; ansible-doc-l:获取列表 ansible-doc-smodule_name:获取指定模块的使用信息 2.ansible命令格式 ansible<host-pattern>[-fforks][-mmodule_name][-aargs] <host-pattern> 指明管控主机,以模式形式表示或者直接给定IP,必须事先定义在文件中;all设置所有 [-f forks] 指明每批管控多少主机,默认为5个主机一批次 [-m module_name] 使用何种模块管理操作,所有的操作都需要通过模块来指定 [-a args] 指明模块专用参数;args一般为key=value格式注意:command模块的参数非为kv格式,而是直接给出要执行的命令即可; 注意:<host-pattern>默认读取/etc/ansible/hosts,也可以指明自定义文件路径 -iPATH, --inventory=PATH:指明使用的host inventory文件路径; 3.常用模块介绍(module_name) 1)command模块:远程主机上运行命令 例如: ansibleWebServers-mcommand-a"ls/tmp" command模块可以省略,此命令可以直接写为: ansibleWebServers-a"ls/tmp" [root@wlmyum.repos.d]#ansibleWebServers-mcommand-a"ls/tmp" #WebServers组里的所有主机执行ls/tmp操作 10.10.10.4|SUCCESS|rc=0>> ansible_1DyyqF keyring-e9DiYC keyring-teKcdb orbit-gdm pulse-bcZcwuv9QjKR pulse-qnyrpnncnwcb 10.10.10.3|SUCCESS|rc=0>> ansible_itWaHf systemd-private-6d81b379511c48219f27f97e16064052-colord.service-RK8yfy systemd-private-6d81b379511c48219f27f97e16064052-cups.service-wm4x9x systemd-private-6d81b379511c48219f27f97e16064052-httpd.service-UXyj9P systemd-private-6d81b379511c48219f27f97e16064052-named.service-Nw7Sew systemd-private-6d81b379511c48219f27f97e16064052-rtkit-daemon.service-QM4tRC systemd-private-6d81b379511c48219f27f97e16064052-vmtoolsd.service-p58UCc 给远程主机添加用户,并设置密码: ansibleWebServers-a"useraddansible1" ansibleWebServers-a"echodtsdts|passwd--stdinansible1" #直接这样使用不会成功,不支持管道,下面介绍shell模块 [root@wlmyum.repos.d]#ansibleWebServers-a"useraddansible1" 10.10.10.4|SUCCESS|rc=0>> 10.10.10.3|SUCCESS|rc=0>> [root@wlmyum.repos.d]#ansibleWebServers-a"echodtsdts|passwd--stdinansible1" 10.10.10.4|SUCCESS|rc=0>> dtsdts|passwd-stdinansible1#只显示了“dtsdts|passwd--stdinansible1”内容 10.10.10.3|SUCCESS|rc=0>> dtsdts|passwd-stdinansible1 2)shell模块:远程主机在shell进程下运行命令,支持shell特性,当然也支持管道 给用户添加密码: ansibleWebServers-mshell-a"echodtsdts|passwd--stdinansible1" [root@wlmyum.repos.d]#ansibleWebServers-mshell-a"echodtsdts|passwd--stdinansible1" 10.10.10.4|SUCCESS|rc=0>> 更改用户ansible1的密码。 passwd:所有的身份验证令牌已经成功更新。 10.10.10.3|SUCCESS|rc=0>> 更改用户ansible1的密码。 passwd:所有的身份验证令牌已经成功更新。 3) copy模块:把当前主机文件复制到远程主机位置,可以指定mode(权限)、own(所属主)、group(所属组) ansibleall-mcopy-a"src=/tmp/abc.txtdest=/root/mode=644owner=ansible1group=root" #src="本地主机文件"dest="远程主机文件" [root@wlmyum.repos.d]#ansibleall-mcopy-a"src=/tmp/abc.txtdest=/root/" 10.10.10.4|SUCCESS=>{ "changed":true, "checksum":"325287cee456533bf76025312e5d05e842cb43a9", "dest":"/root/abc.txt", "gid":0, "group":"root", "md5sum":"1c6d47c6e4d59c630751b47fff140b89", "mode":"0644", "owner":"root", "size":15, "src":"/root/.ansible/tmp/ansible-tmp-1484639082.19-114656107854348/source", "state":"file", "uid":0 } 10.10.10.3|SUCCESS=>{ "changed":true, "checksum":"325287cee456533bf76025312e5d05e842cb43a9", "dest":"/root/abc.txt", "gid":0, "group":"root", "md5sum":"1c6d47c6e4d59c630751b47fff140b89", "mode":"0644", "owner":"root", "size":15, "src":"/root/.ansible/tmp/ansible-tmp-1484639082.46-26533455703361/source", "state":"file", "uid":0 } 4)cron模块:在远程主机制定crontab周期性计划任务 minute=hour=day=month=weekday=job=name=(必须填写)state= 例如: ansibleall-mcron-a"minute=*/10job='/sbin/ntpdate10.10.10.10&>/dev/null'name=Synctime" 在被管理的主机上使用crontab -l查看 [root@WebServer~]#crontab-l #Ansible:Synctime */10****/sbin/ntpdate10.10.10.10&>/dev/null 在管理(ansible)的主机上,可以删除制定的计划任务 ansibleall-mcron-a"state=absentname=Synctime"#name="name" [root@wlmyum.repos.d]#ansibleall-mcron-a"state=absentname=Synctime" 10.10.10.4|SUCCESS=>{ "changed":true, "envs":[], "jobs":[] } 10.10.10.3|SUCCESS=>{ "changed":true, "envs":[], "jobs":[] } 5)fetch模块:和copy相反,从远程主机拷贝文件到本地主机 ansibleWebServers-mfetch-a“src=/root/abc.txtdest=/root/kel/flat=yes” src="远程主机文件"dest="本地主机"可以不要flat=yes参数 flat=yes作用: 当dest=/root/kel/,abc.txt会保存在/root/kel/目录下 当dest=/root/kel,会拷贝abc.txt文件,并命名为kel 6)file模块:file模块它包含了文件、文件夹、超级链接类的创立、拷贝、移动、删除操作 ansibleWebServers-mfile-a #修改文件的所有组、人、权限。 path=/etc/foo.confowner=foogroup=foomode=0644 #操作链接的案例 src=/file/to/link/todest=/path/to/symlinkowner=foogroup=foostate=link #参数化案例 src=/tmp/{{item.path}}dest={{item.dest}}state=linkwith_items: -{path:'x',dest:'y'}-{path:'z',dest:'k'} #使用touch来创建一个空文件并定义权限 path=/etc/foo.confstate=touchmode="u=rw,g=r,o=r" #touch一个空文件,并且修改权限 path=/etc/foo.confstate=touchmode="u+rw,g-wx,o-rwx" 7)yum模块:用于yum安装包安装和卸载等操作 #ansibleWebServers-myum-a“name=httpd” #在远程主机上使用yum安装htpd服务 8)service模块:服务管理,就是service命令 ansibleall-mservice-a"" #不管当前什么情况,启动apache name=httpdstate=started #不管当前什么情况,停止apache name=httpdstate=stopped #不管当前什么情况,重启apache name=httpdstate=restarted #系统重启后,启动apache name=httpdenabled=yes 9) user/group模块:user模块,用于管理用户;group模块,用于管理group #ansibleall-muser-a"name=test01group=root" #添加一个test01用户,所属组为root #ansibleall-muser-a"name=test01state=absentremove=yes" #删除test01用户 #ansibleall-mgroup-a"name=testgrp01" #添加一个testgrp01的组 #ansibleall-mgroup-a"name=testgrp01state=absent" #删除组testgrp01 四、Playbooks剧本 playbooks是ansible更强大的配置管理组件,实现基于文本文件编排执行的多个任务,且多次重复执行。playbook组织格式为使用YAML语言来进行编写。 playbook是由一个或多个”play”组成的列表。play的主要功能在于将事先归为一组的主机装扮成事先通过ansible中的task定义好的角色。从根本上来讲,所谓的task无非是调用ansible的一个module。将多个paly组织在一个playbook中,即可以让他们联通起来按事先编排的机制同唱一台大戏。 YAML是用来写配置文件的,接下来的配置文件都是以yaml为后缀。 1.先来一个playbook的例子: 在ansible主机上的/root/下创建httpd目录,将本机的httpd.conf文件拷贝该目录下,修改配置文件里的监听的端口为8081 #vimweb.yaml#注意:文件一般以yaml为后缀 -hosts:WebServers#运行指定任务的目标主机 remote_user:root#在远程主机上执行任务的用户 tasks:#任务列表 -name:installhttpdpackage#设置任务名称,非必要 yum:name=httpdstate=present#使用yum模块安装httpd -name:installconfigurefile copy:src=/root/httpd/httpd.confdest=/etc/httpd/conf/#使用copy模块 -name:starthttpdservice service:name=httpdstate=started#使用service模块,start服务 测试: ansible-playbook --check playbook:只检测可能会发生的改变,但不真正执行操作; ansible-playbook playbook:直接执行 ansible-playbook --list-hosts:列出运行任务的主机; [root@wlmhttpd]#ansible-playbook--checkweb.yaml PLAY[WebServers]************************************************************** TASK[setup]******************************************************************* ok:[10.10.10.3] ok:[10.10.10.11] TASK[installhttpdpackage]*************************************************** ok:[10.10.10.3] ok:[10.10.10.11] TASK[installconfigurefile]************************************************** changed:[10.10.10.11] ok:[10.10.10.3] TASK[starthttpdservice]***************************************************** ok:[10.10.10.3] ok:[10.10.10.11] PLAYRECAP********************************************************************* 10.10.10.11:ok=4changed=1unreachable=0failed=0 10.10.10.3:ok=4changed=0unreachable=0failed=0 [root@wlmhttpd]#ansible-playbookweb.yaml PLAY[WebServers]************************************************************** TASK[setup]******************************************************************* ok:[10.10.10.3] ok:[10.10.10.11] TASK[installhttpdpackage]*************************************************** ok:[10.10.10.3] ok:[10.10.10.11] TASK[installconfigurefile]************************************************** ok:[10.10.10.3] ok:[10.10.10.11] TASK[starthttpdservice]***************************************************** changed:[10.10.10.11] changed:[10.10.10.3] PLAYRECAP********************************************************************* 10.10.10.11:ok=4changed=1unreachable=0failed=0 10.10.10.3:ok=4changed=1unreachable=0failed=0 2.通过这个事例的使用,下面来概括一下介绍playbook playbook的基础组件: Hosts:运行指定任务的目标主机 remoute_user:在远程主机上执行任务的用户 sudo_user: task:任务列表 格式: (1)action:module arguments (2) module:arguments 注意:shell和command模块后面直接跟命令,而非key=valume类的参数列表 设置在特定条件下触发: (1)某任务的状态在运行后为changed时,可通过“notify”通知给相应的handlers; handlers: 任务,在特定条件下触发; 接收到其他任务的通知是被触发; (2)任务可以通过“tags”打标签,而后可在ansible-playbook命令上使用-t指定进行调用; 运行playbook的方式: (1)测试 ansible-playbook --check 只检测可能会发生的改变,但不真正执行操作; ansible-playbook --list-hosts 列出运行任务的主机; (2)运行 ansible-playbook 3.上面的脚本里,改变了配置文件之后会启动服务,但是不会重启服务,如果以后又改变配置文件,只有restart才会生效,那怎么实现了? 下面介绍handlers。 在特定条件下触发;接收到其他任务的通知时被触发。Tasks中的任务都是有状态的,changed或者ok。 在Ansible中,只在task的执行状态为changed的时候,才会执行该task调用的handler。Handlers 最佳的应用场景是用来重启服务,或者触发系统重启操作.除此以外很少用到了。我改了配置文件要重启吧。 某任务的状态在运行后为changed时,可通过“notify”通知给相应的handlers; handlers: 任务,在特定条件下触发; 接收到其他任务的通知是被触发; 事例脚本如下: -hosts:WebServers remote_user:root tasks: -name:installhttpdpackage yum:name=httpdstate=present -name:installconfigurefile copy:src=/root/httpd/httpd.confdest=/etc/httpd/conf/ notify:restarthttpd#加notify标签,如果copy的执行结果为change,就会触发下面handlers里name:restarthttpd的操作 -name:starthttpdservice service:name=httpdstate=started handlers: -name:restarthttpd#这里的名称和notify是一致的 service:name=httpdstate=restarted#restarthttpd服务 测试(配置文件没有变动): [root@wlmhttpd]#ansible-playbook--checkweb_handlers.yaml PLAY[WebServers]************************************************************** TASK[setup]******************************************************************* ok:[10.10.10.3] ok:[10.10.10.11] TASK[installhttpdpackage]*************************************************** ok:[10.10.10.3] ok:[10.10.10.11] TASK[installconfigurefile]************************************************** ok:[10.10.10.11] ok:[10.10.10.3] TASK[starthttpdservice]***************************************************** ok:[10.10.10.3] ok:[10.10.10.11] PLAYRECAP********************************************************************* 10.10.10.11:ok=4changed=0unreachable=0failed=0 10.10.10.3:ok=4changed=0unreachable=0failed=0 执行: [root@wlmhttpd]#ansible-playbookweb_handlers.yaml PLAY[WebServers]************************************************************** TASK[setup]******************************************************************* ok:[10.10.10.3] ok:[10.10.10.11] TASK[installhttpdpackage]*************************************************** ok:[10.10.10.11] ok:[10.10.10.3] TASK[installconfigurefile]************************************************** ok:[10.10.10.3] ok:[10.10.10.11] TASK[starthttpdservice]***************************************************** ok:[10.10.10.11] ok:[10.10.10.3] PLAYRECAP********************************************************************* 10.10.10.11:ok=4changed=0unreachable=0failed=0 10.10.10.3:ok=4changed=0unreachable=0failed=0 修改了被管理主机上10.10.10.3上的配置文件后再执行: [root@wlmhttpd]#ansible-playbookweb_handlers.yaml PLAY[WebServers]************************************************************** TASK[setup]******************************************************************* ok:[10.10.10.11] ok:[10.10.10.3] TASK[installhttpdpackage]*************************************************** ok:[10.10.10.11] ok:[10.10.10.3] TASK[installconfigurefile]************************************************** ok:[10.10.10.11] changed:[10.10.10.3] TASK[starthttpdservice]***************************************************** ok:[10.10.10.11] ok:[10.10.10.3] RUNNINGHANDLER[restarthttpd]************************************************ changed:[10.10.10.3] PLAYRECAP********************************************************************* 10.10.10.11:ok=4changed=0unreachable=0failed=0 10.10.10.3:ok=5changed=2unreachable=0failed=0 4.指定执行哪些name内的操作,添加tags标签 任务可以通过“tags”打标签,而后可在ansible-playbook命令上使用-t指定进行调用; 在上一个脚本的基础上,添加tags标签操作,样例脚本如下: -hosts:WebServers remote_user:root tasks: -name:installhttpdpackage yum:name=httpdstate=present tags:insthttpd#添加tags标签,名称为insthttpd -name:installconfigurefile copy:src=/root/httpd/httpd.confdest=/etc/httpd/conf/ notify:restarthttpd tags:instconf#添加tags标签,名称为instconf -name:starthttpdservice service:name=httpdstate=started tags:starthttpd#添加tags标签,名称为starthttpd handlers: -name:restarthttpd service:name=httpdstate=restarted 执行: 在ansible-playbook命令上使用-t指定进行调用 [root@wlmhttpd]#ansible-playbook-tstarthttpdweb_handlers.yaml PLAY[WebServers]************************************************************** TASK[setup]******************************************************************* ok:[10.10.10.3] ok:[10.10.10.11] TASK[starthttpdservice]***************************************************** ok:[10.10.10.11] ok:[10.10.10.3] #只执行了starthttpdservice PLAYRECAP********************************************************************* 10.10.10.11:ok=2changed=0unreachable=0failed=0 10.10.10.3:ok=2changed=0unreachable=0failed=0 [root@wlmhttpd]#ansible-playbook-tinstconfweb_handlers.yaml PLAY[WebServers]************************************************************** TASK[setup]******************************************************************* ok:[10.10.10.11] ok:[10.10.10.3] TASK[installconfigurefile]************************************************** ok:[10.10.10.11] ok:[10.10.10.3] #值执行了installconfigurefile PLAYRECAP********************************************************************* 10.10.10.11:ok=2changed=0unreachable=0failed=0 10.10.10.3:ok=2changed=0unreachable=0failed=0 5.在playbook中使用变量 1)主机的系统变量(facts) ansible会通过module setup来收集主机的系统信息,这些收集到的系统信息叫做facts,这些facts信息可以直接以变量的形式使用。 哪些facts变量可以引用呢?在命令行上通过调用setup module命令可以查看 $ansibleall-msetup-uroot 怎样在playbook中使用facts变量呢,答案是直接使用: --- -hosts:all user:root tasks: -name:echosystem shell:echo{{ansible_os_family}} -nameinstallntponDebianlinux apt:name=gitstate=installed when:ansible_os_family=="Debian" -nameinstallntponredhatlinux yum:name=gitstate=present when:ansible_os_family=="RedHat" 2)ansible-playbook命令行中的自定义变量; -e VARS, --extra-vars=VARS 使用事例: vimname.yaml -hosts:WebServers remote_user:root vars: -pkgname:memcached#在playbook内部定义变量,变量名称为pkgname,值为memcached tasks: -name:installapackage yum:name={{pkgname}}state=present#使用name={{pkgname}}调用变量的值 测试: [root@wlm~]#ansible-playbook--syntax-checkname.yaml#语法检测 playbook:name.yaml [root@wlm~]#ansible-playbook--checkname.yaml#测试使用 PLAY[WebServers]************************************************************** TASK[setup]******************************************************************* ok:[10.10.10.11] ok:[10.10.10.3] TASK[installapackage]******************************************************* changed:[10.10.10.11] changed:[10.10.10.3] PLAYRECAP********************************************************************* 10.10.10.11:ok=2changed=1unreachable=0failed=0 10.10.10.3:ok=2changed=1unreachable=0failed=0 手动指定变量(-e VARS):在执行脚本时,指定变量的值 [root@wlm~]#ansible-playbook-epkgname=httpd--checkname.yaml PLAY[WebServers]************************************************************** TASK[setup]******************************************************************* ok:[10.10.10.11] ok:[10.10.10.3] TASK[installapackage]******************************************************* changed:[10.10.10.11] changed:[10.10.10.3] PLAYRECAP********************************************************************* 10.10.10.11:ok=2changed=1unreachable=0failed=0 10.10.10.3:ok=2changed=1unreachable=0failed=0 [root@wlm~]#ansible-playbook-epkgname=httpdname.yaml PLAY[WebServers]************************************************************** TASK[setup]******************************************************************* ok:[10.10.10.11] ok:[10.10.10.3] TASK[installapackage]******************************************************* 3) 通过roles传递变量; 4) Host Inventory 在/etc/ansible/hosts 文件里面编写 (a)向不同的主机传递不同的变量; IP/HOSTNAME varalable=value var2=value2 (b)向组中的主机传递相同的变量; [groupname:vars] variable=value invertory参数: 用于定义ansible远程连接目标主机是使用的参数,而非传递给playbook的变量; ansible_ssh_host ansible_ssh_port ansible_ssh_user ansible_ssh_pass ansible_sudo_pass

优秀的个人博客,低调大师

Websphere安装配置与项目部署

0x01 下载安装 1、在IBM官网下载安装包 打开下载地址,需注册账户,登录后,选择Windows 64-bit下载 2、解压缩,运行install.exe文件 3、输入刚才注册的用户名和密码,并输入安全存储器的新主密码 4、安装软件包,点击下一步 5、接收许可协议条款,下一步 6、选择共享资源目录 7、选择安装目录,下一步 8、默认简体中文和英语,下一步 9、勾选继续在缺省java SDK上使用java SE 6 10、开始安装 11、下一步,直到完成。 0x02 新建应用程序服务器 1、点击新建,选择应用程序服务器,一直Next 2、完成后,查看安装验证,注意服务器端口号为9080 0x03 上传war包 1、后台地址:https://192.168.204.148:9043/ibm/console/logon.jsp 上传地方:应用程序>新建应用程序>新建企业应用程序 2、选择要上传的war包,下一步 3、一直下一步,步骤4注意填好“上下文根”,然后继续下一步,直到完成。 4、点击保存到主配置 5、应用程序>应用程序类型>WebSphere 企业应用程序,选中你上传的war包,点击启动 即可发布 6、shell地址:http://192.168.204.148:9080/hello/JspSpy.jsp 参考链接: Websphere上如何部署war包 https://jingyan.baidu.com/article/363872ec2ae70b6e4ba16f83.html WebSphere 安装部署,发布web应用 https://blog.csdn.net/greensure/article/details/78587939 https://blog.csdn.net/smile_shaco/article/details/74909915

优秀的个人博客,低调大师

Linux下安装配置JDK1.8

第一步:下载Linux环境下的jdk1.8,请去(官网)中下载jdk的安装文件; 查看Linux操作系统位数: [root@localhost~]#getconfLONG_BIT 由于我的Linux是64位的,因此我下载的是jdk-8u151-linux-x64.tar.gz 如下图所示: 第二步:新建/usr/java文件夹,将jdk-8u151-linux-x64.tar.gz放到该文件夹中,并将工作目录切换到/usr/java目录下。如下图所示: 第三步:配置环境变量: 使用vim /etc/profile编辑profile文件,在/etc/profile底部加入如下内容: [root@localhost~]# vim /etc/profile JAVA_HOME=/usr/java/jdk1.8.0_151 PATH=$JAVA_HOME/bin:$PATH CLASSPATH=$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar export PATH JAVA_HOME CLASSPATH 第四步:使用source /etc/profile让profile文件立即生效 [root@localhost~]# source /etc/profile 第五步:命令测试 ①、使用javac命令,不会出现command not found错误 ②、使用java -version,出现版本为java version "1.8.0_151" ③、echo $JAVA_HOME;echo $CLASSPATH;echo $PATH; OK

优秀的个人博客,低调大师

openstack学习笔记八 glance安装配

镜像 安装过系统的虚拟硬盘 管理是用glance来完成。 镜像的状态: active 镜像已经上传完成,并且是可用的 saving 正在被上传,还没有完成 killed 上传出错 queued 并没有真的上传完成,但是被标记有这个镜像 安装glance 在 keystone注册 glance所需要的账户 创建glance服务 指定glance服务的endpoint 安装 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 [root@h4~] #yum-yinstallopenstack-glance.noarch [root@h4~] #openstack-db--init--serviceglance--password123456-rootpw123456 [root@h4~(keystone_admin)] #keystoneuser-create--nameglance--pass123456 [root@h4~(keystone_admin)] #keystoneuser-role-add--userglance--tenantservices--roleadmin [root@h4~(keystone_admin)] #keystoneservice-create--nameglance--typeimage--description"glancejingxiang" [root@h4~(keystone_admin)] #keystoneendpoint-create--service-id3d0969b633044029a895da1ca2855464--publicurl'http://192.168.1.204:9292'--internalurl'http://192.168.1.204:9292'--adminurl'http://192.168.1.204:9292' +-------------+----------------------------------+ |Property|Value| +-------------+----------------------------------+ |adminurl|http: //192 .168.1.204:9292| | id |e0f7718b18444f71a43762ca3336ef06| |internalurl|http: //192 .168.1.204:9292| |publicurl|http: //192 .168.1.204:9292| |region|regionOne| |service_id|3d0969b633044029a895da1ca2855464| +-------------+----------------------------------+ 修改配置文件 1 2 3 4 5 6 7 8 9 10 11 12 13 [root@h4glance(keystone_admin)] #systemctllist-unit-files|grepglanc openstack-glance-api.servicedisabled接受用户的请求 openstack-glance-registry.servicedisabled和数据库进行交互 openstack-glance-scrubber.servicedisabled和其他接口进行交互 [root@h4glance(keystone_admin)] #ls glance-api.confglance-registry.confmetadefsschema-image.json glance-cache.confglance-scrubber.confpolicy.json [root@h4glance(keystone_admin)] #cd/usr/share/glance/模板 [root@h4glance(keystone_admin)] #ls glance-api-dist.confglance-registry-dist.conf glance-api-dist- paste .iniglance-registry-dist- paste .ini glance-cache-dist.confglance-scrubber-dist.conf [root@h4glance(keystone_admin)] #cpglance-api-dist.conf/etc/glance/glance-api.conf##拷贝模板 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 26 27 28 29 [root@h4glance(keystone_admin)] #vimglance-api.conf [DEFAULT] debug=False verbose=True use_stderr=False log_file= /var/log/glance/api .log filesystem_store_datadir= /var/lib/glance/images/ scrubber_datadir= /var/lib/glance/scrubber image_cache_dir= /var/lib/glance/image-cache/ rabbit_host=192.168.1.204 rabbit_port=5672 rabbit_hosts=$rabbit_host:$rabbit_port rabbit_use_ssl= false rabbit_userid=guest rabbit_password=guest rabbit_login_method=AMQPLAIN [database] connection=mysql: //glance :123456@192.168.1.204 /glance [keystone_authtoken] admin_tenant_name=services admin_user=glance admin_password=123456 auth_host=192.168.1.204 auth_port=35357 auth_protocol=http auth_uri=http: //192 .168.1.204:5000/ [paste_deploy] config_file= /usr/share/glance/glance-api-dist-paste .ini flavor=keystone 1 2 3 [root@h4glance] #chownroot.glanceglance-api.conf [root@h4glance] #systemctlstartopenstack-glance-api.serviceopenstack-glance-registry.serviceopenstack-glance-scrubber.service [root@h4glance] #systemctlenableopenstack-glance-api.serviceopenstack-glance-registry.serviceopenstack-glance-scrubber.service 管理 1 2 3 4 5 6 7 8 9 10 11 [root@h4~(keystone_admin)] #glanceimage-list +----+------+ |ID|Name| +----+------+ +----+------+ [root@h4~(keystone_admin)] #glancehelpimage-create ##########################先上传一个镜像再创建 [root@h4~(keystone_admin)] #glanceimage-create--namehequan--filehequan.img--disk-formatqcow2--visibilitypublice--container-formatbare##创建 [root@h4~(keystone_admin)] #glanceimage-create--namehequan--os-distrohttp://mirrors.163.com/centos/7.2.1511/isos/x86_64/CentOS-7-x86_64-Minimal-1511.iso--disk-formatiso--container-formatbare filesystem_store_datadir= /var/lib/glance/images/ ###镜像保存的位置 #default_store=file 修改镜像存储位置 swift 做后端存储 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 6 #filesystem_store_datadir=/var/lib/glance/images/##先禁用 [glance_store] default_store=swift默认为 file 改为swift stores= file ,http默认不用动 swift_store_auth_version=2默认版本为2 stores=glance.store.swift.Store,glance.store.filesystem.Store此项一定要加上,不然无法上传 swift_store_auth_address=http: //192 .168.1.204:5000 /v2 .0/controller的keystone认证 swift_store_user=service:swift使用swift用户 swift_store_key=hequan密码 swift_store_container=glance将要被创建的容器 swift_store_create_container_on_put=True上传开 swift_store_large_object_size=5120最大5G限制,但与glance结合后限制无效 swift_store_large_object_chunk_size=200最大200个容器 swift_enable_snet=False [root@h4glance(keystone_admin)] #systemctlrestartopenstack-glance-api.serviceopenstack-glance-registry.serviceopenstack-glance-scrubber.service ceph 共享存储 安装epel仓库 1 2 3 4 5 6 7 8 9 10 11 12 rpm-vihhttp: //mirrors .sohu.com /fedora-epel/7/x86_64/e/epel-release-7-2 .noarch.rpm 添加yumceph仓库 vim /etc/yum .repos.d /ceph .repo [ceph] name=Cephnoarchpackages baseurl=http: //mirrors .163.com /ceph/rpm-hammer/el7/x86_64/ enabled=1 gpgcheck=1 type =rpm-md gpgkey=http: //mirrors .163.com /ceph/keys/release .asc 安装ceph-deploy,ceph(ceph所有节点都安装,ceph-deploy只需admin节点安装) yum-yupdate&&yum-y install --releasehammercephceph-deploy 1 生成相关的MOD信息 监控服务器 h5 1 2 3 [root@h5xx] #ceph-deploynewh5 [root@h5xx] #ls ceph.confceph-deploy-ceph.logceph.mon.keyring 2 要根据自己的情况修改配置文件ceph.conf 1 2 osd_pool_default_size=2 ##几个节点组成,默认是3 osd_pool_defaults_min_size=1 ##最小值是1 3 生成key 当客户端要链接到ceph服务器,需要用户名和密码 1 2 3 4 5 [root@h5xx] #ceph-deploymoncreate-initial [root@h5myceph] #ls ceph.bootstrap-mds.keyringceph.client.admin.keyringceph.mon.keyring ceph.bootstrap-osd.keyringceph.conf ceph.bootstrap-rgw.keyringceph.log 4 开始准备配置OSD 1 2 3 4 mkdir path1path2 [root@h5xx] #ceph-deployosdprepareh5:/path1h6:/path2 [root@h5xx] #ceph-deployosdactivateh5:/path1h6:/path2##激活 [ceph_deploy.osd][DEBUG]Hosth5isnowready for osduse. 5 把key复制到各个节点上去 1 2 [root@h5ceph] #ceph-deployadminh5h6 [root@h5ceph] #cephhealth##健康性检查 6 生成元数据 1 2 3 4 [root@h5ceph] #ceph-deploymdscreateh5 [root@h5ceph] #radoslspools [root@h5ceph] #radosmkpoolglance [root@h5ceph] #radosrmpoolglanceglance--yes-i-really-really-mean-it##删除 glance配置成ceph的客户端 安装ceph 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 [root@h4ceph(keystone_admin)] #ls rbdmap [root@h5myceph] #ceph-deployadminh4 [root@h4ceph(keystone_admin)] #ls ceph.client.admin.keyringceph.confrbdmaptmp6BxOoY vimglance-api.conf [glance_store] default_store=rbd stores=rbd rbd_store_pool=glance rbd_store_user=admin rbd_store_ceph_conf= /etc/ceph/ceph .conf rbd_store_chunk_size=8 systemctlrestartopenstack-glance-api.serviceopenstack-glance-registry.serviceopenstack-glance-scrubber.service -rw-------1rootroot637月2116:43ceph.client.admin.keyring setfacl-mu:glance:r--ceph.client.admin.keyring ##设置权限能读 制作镜像 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 26 yum-ygroupinstall "ServerwithGUI" yum install virt-managerpython-virtinstqemu-kvm-toolsqemu-kvmlibvirt KVM 创建存储卷centos.qcow2 基本安装 配置网卡删除MAC 安装基本组件openssh-clients cloud-init ##云包 [root@h4~] #vim/etc/default/grub GRUB_CMDLINE_LINUX= "net.ifnames=0biosdevname=0console=tty0console=ttyS0,115200n8rhgbquiet" ##指定串口的参数 [root@h4~] #grub2-mkconfig-o/boot/grub2/grub.cfg 封装 [root@h5~] #yumwhatprovides*/virt-sysprep [root@h5~] #yum-yinstalllibguestfs-bash-completion-1.28.1-1.55.el7.centos.noarch [root@h4~] #virt-sysprep-dcentos [root@h4~] #cd/openstack-image/ [root@h4openstack-image] #qemu-imginfocentos.qcow2 qemu-imgconver-c-oqcow2centos.qcow2newcentos.qcow2 ###3压缩命令 本文转自 295631788 51CTO博客,原文链接:http://blog.51cto.com/hequan/1828592,如需转载请自行联系原作者

优秀的个人博客,低调大师

CentOS 7 部署安装配置 Docker 17.06

一、Docker的安装 Docker目前官方主要有两个版本,一个是企业版(docker-ee),一个是社区版(docker-ce),我们这里主要使用的是社区版。 1、安装Docker CE CentOS 7 基本仓库是带docker的,但是不是官方的版本,而且版本也比较低,我们推荐使用官方的yum源,而且对以后的升级也很方便。 1 wget-P /etc/yum .repos.d/https: //download .docker.com /linux/centos/docker-ce .repo 1 yum install docker-ce 在生产环境,我们通常会指定版本安装,如果不指定,将会使用最新版本安装,通过使用下面的命令,可以查看docker的版本。 1 yumlistdocker-ce.x86_64--showduplicates| sort -r 安装指定版本,使用如下命令。 1 yum install docker-ce-<VERSION> 2、启动Docker 1 systemctlstartdocker 3、使用阿里云镜像快速安装 1 curl-sSLhttp: //acs-public-mirror .oss-cn-hangzhou.aliyuncs.com /docker-engine/internet |sh- 二、配置Docker 加速器 如果不使用加速器,我们从Docker服务器拉取的时候会非常慢,那该如何解决呢? 首先,要“感谢”伟大的墙及其亲属。 然后,使用阿里云加速器或者DaoCloud 加速器(也就是代理、镜像)即可。 1、阿里云加速器 登录地址https://dev.aliyun.com/search.html,点击"创建我的容器镜像",找到"Docker Hub 镜像站点",如下图: 1 2 3 4 5 6 7 sudo tee /etc/docker/daemon .json<<- 'EOF' { "registry-mirrors" :[ "https://78ssvya7.mirror.aliyuncs.com" ] } EOF sudo systemctldaemon-reload sudo systemctlrestartdocker 2、DaoCloud 加速器 注册DaoCloud账户(支持微信登录),然后访问:https://www.daocloud.io/mirror#accelerator-doc 1 curl-sSLhttps: //get .daocloud.io /daotools/set_mirror .sh|sh-shttp: //b149d2fd .m.daocloud.io 本文转自 wzlinux 51CTO博客,原文链接:http://blog.51cto.com/wzlinux/1958583,如需转载请自行联系原作者

优秀的个人博客,低调大师

hadoop完全分布式安装配

一、创建hadoop用户并配置ssh无密钥登录。 http://yntmdr.blog.51cto.com/3829621/1631908 二、安装jdk 三、解压hadoop压缩包 tar -xf hadoop-2.7.1.tar.gz 修改拥有者 chown -R hadoop:hadoop hadoop-2.7.1 四、添加hadoop环境变量 编辑/etc/profile文件追加 HADOOP_HOME=/usr/local/hadoop-2.7.1 PATH=$PATH:$HADOOP_HOME/bin export HADOOP_HOME PATH 保存并退出 五、使环境变量生效 source /etc/profile 执行 hadoop version 查看是否配置成功 六、修改 hadoop-env.sh export JAVA_HOME=/usr/java/jdk1.7.0_71 七、修改yarn-env.sh export JAVA_HOME=/usr/java/jdk1.7.0_71 八、修改slaves添加host: hddn141 hddn142 九、修改配置文件 core-site.xml <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://hdnn140:9000/</value> <final>true</final> </property> <property> <name>hadoop.tmp.dir</name> <value>file:/usr/local/hadoop-2.6.0/tmp</value> </property> </configuration> 八、修改配置文件 hdfs-site.xml <configuration> <property> <name>dfs.namenode.name.dir</name> <value>file:/usr/local/hadoop-2.6.0/dfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/usr/local/hadoop-2.6.0/dfs/data</value> </property> <property> <name>dfs.replication</name> <value>2</value> </property> <property> <name>dfs.permissions</name> <value>false</value> </property> </configuration> dfs.replication配置了文件块的副本数,一般不大于从机的个数 九、修改配置文件 mapred-site.xml <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> <final>true</final> </property> <property> <name>mapreduce.jobhistory.address</name> <value>hdnn140:10020</value> <final>true</final> </property> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>hdnn140:19888</value> <final>true</final> </property> </configuration> 这个是mapreduce任务的配置,由于hadoop2.x使用了yarn框架,所以要实现分布式部署,必须在mapreduce.framework.name属性下配置为yarn 十、 编辑yarn-site.xml <configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name> <value>org.apache.hadoop.mapred.ShuffleHandler</value> </property> <property> <name>yarn.resourcemanager.address</name> <value>hdnn140:8032</value> </property> <property> <name>yarn.resourcemanager.scheduler.address</name> <value>hdnn140:8030</value> </property> <property> <name>yarn.resourcemanager.resource-tracker.address</name> <value>hdnn140:8035</value> </property> <property> <name>yarn.resourcemanager.admin.address</name> <value>hdnn140:8033</value> </property> <property> <name>yarn.resourcemanager.webapp.address</name> <value>hdnn140:8088</value> </property> </configuration> 十一、由于涉及到端口较多所以我们直接关闭防火墙 systemctl stop iptables 十二、将配置好的hadoop复制到其他节点 scp -r /usr/local/hadoop-2.7.1 root@hddn141:/usr/local scp -r /usr/local/hadoop-2.7.1 root@hddn142:/usr/local 拷贝完成后,修改所有者 chown -R hadoop:hadoop hadoop-2.7.1 十三、对hdfs格式化,执行以下命令: hdfs namenode -format 出现 Storage directory /tmp/hadoop-hadoop/dfs/name has been successfully formatted. 搞定! 重新格式化namenode时,需先删除各节点的tmp文件 十四、启动sbin目录下 start-all.sh 十五、执行jps查看java进程 hdnn140服务器上5个进程: Jps 16977 DataNode 29754 ResourceManager 17382 NodeManager 29447 NameNode 29620 SecondaryNameNode hddn141服务器上2个进程: Jps hddn142服务器上2个进程: Jps 十六、通过网址查看 http://192.168.152.140:8088/ 完成! 说明: 1、hostname不要使用下划线。 本文转自 yntmdr 51CTO博客,原文链接:http://blog.51cto.com/yntmdr/1631956,如需转载请自行联系原作者

优秀的个人博客,低调大师

Hadoop在Windows下的安装配

由于本人近期近期一段时间 都在学习Hadoop,接触了比較多的理论,可是想要深入的去学习Hadoop整个平台,那就必须实战的训练,首先第一步,当然是先搭建好一个Hadoop平台为先。可是比較坑爹的是。Hadoop是要求安装在Linux环境下的。在Windows下是不能直接执行的。 所以仅仅能在Windows下搞个Cygwin,然后把Hadoop安装包往里面扔了。我对Cygwin的印象一直不是很好,曾经用过这个模拟过Linux环境,后来发现总是会出现各种环境上的问题。很耗时间。所以我推測,如今我又在上面搭建一个Hadoop平台,也肯定不是一件简单的事件。后来的事实证明,我的确遭遇到了许多的问题。 首先第一个遇到的问题,就是配置文件上的差别。之前我在网上下载的Hadoop安装版本号文件时Hadoop2.0然后。我的安装教程将的是1.0的。里面的配置文件对应的配置文件都没找到。比方,在Hadoop2.0中是没有mapred-site.xml。取而代之的是mapred-site.xml.template文件,所在的文件夹页不是叫做conf文件夹。所以,第一点,搭建Hadoop平台,要对准对应的平台进行安装。 2.在配置core-site,hdfs-site,mapreduce-site文件之前,要先安装SSH 服务,由于Hadoop的通信会要求进行SSH认证的,还会生出密钥文件,有了密钥文件。就能够实现以后的免password登录,这个步骤是必须的,假设不运行这个前期操作,运行的后面的命令会报错的。 3.Cygwin下的JDK安装和路径配置,由于Hadoop平台是要求Java环境的,须要在Cygwin环境下也安装JDK。可是我们的JDK是安装在Windows磁盘下的啊,这该怎么处理呢,第一之间把地址定位到你安装的地址上去,通过cgwdrive+你的实际安装位置,或者你直接找到原先的安装文件夹,直接复制到Cygwin的文件夹下,再进行path的设置。 JDK的设置非常重要,兴许的命令非常多都是基于此的。 4.最后一个就是3大配置文件的配置操作了,假设你不打算配置,那就是默认的单机模式了。配置的操作就是相当于有了DataNode, NameNode, HDFS等等。可是都是在本机上进行的。一个伪分布式模式,这个非常easy,就是定义了port号,和一些描写叙述信息。 5.最后在执行整个服务之前,要先对HDFS进行格式化操作,hadoop hdfs-format,在最后面的就是start-all.sh,在不同版本号的Hadoop中。start-all.sh在不同的文件夹中,1.2版的是在bin文件夹下,2.0版的是在sbin下。cd到哪个文件夹下执行操作须要注意。 上述操作就是我在搭建平台的过程中所遇到的问题,上述是我自觉得是比較easy犯的错误,里面其它的问题网上搜的都是一堆的教程,大同小异。 本文转自mfrbuaa博客园博客,原文链接:http://www.cnblogs.com/mfrbuaa/p/5166725.html,如需转载请自行联系原作者

优秀的个人博客,低调大师

天兔(Lepus)监控邮件推送安装配

好吧,我承认官网的邮件配置教程我又没看懂,这里记录下我的配置方法 [root@HE3]# vi /usr/local/lepus/test_send_mail.py #!/usr/bin/envpython #-*-coding:utf8-*- fromdatetimeimport* importsys path='./include' sys.path.insert(0,path) importfunctionsasfunc #mail_to_list=func.get_option('mail_to_list') send_mail_to_list=func.get_option('send_mail_to_list') mailto_list=send_mail_to_list.split(';') result=func.send_mail(mailto_list,"Ihopeyoucanlearn","BeautifulDay") printresult ifresult: send_mail_status="success" else: send_mail_status="fail" print"send_mail_status:"+send_mail_status 注释掉原有的mail_to_list,添加一行send_mail_to_list =func.get_option('send_mail_to_list') 原有的mailto_list=mail_to_list.split(';')改为mailto_list=send_mail_to_list.split(';') 去申请一个新的126邮箱,选择设置-POP3/SMTP/IMAP-客户端授权密码 1处填写你刚刚申请的126邮箱账号 2处填写你刚刚开启的客户端授权密码 3处填写你的126邮箱地址 [root@HE3]#pythontest_send_mail.py True send_mail_status:success 编译通过 OK,turn on your lepus alert button!~ 适当调低报警阈值,不出10s,你的收件箱应该就收到告警邮件了~ ------------------------------慢查询推送配置------------------------- [root@HE3lepus]#yuminstalllinks [root@HE3lepus]#linkshttp://mysqlmtop1.ikongjian.com/index.php/task/send_mysql_slowquery_mail 执行上述命令进行测试,这里的web的页面是你自己的监控页面地址请勿直接复制 然后将该命令加入执行计划即可 0008***linkshttp://mysqlmtop1.ikongjian.com/index.php/task/send_mysql_slowquery_mail>/dev/null2>&1

优秀的个人博客,低调大师

Tomcat服务器安装配置——Windows系统

1、首先去Apache官网下载Tomcat 2、Tomcat是一个绿色的软件,所以,直接解压到你想要存放的文件中就可以,我就直接放在c盘的根目录了 3、配置Tomcat环境 【我的电脑】-【属性】-【高级系统设置】-【环境变量】 在系统变量里面新建 变量名:CATALINA_HOME 变量值:C:\apache-tomcat-7.0.93 4、在Tomcat文件中找到bin目录里面的startup.bat文件,双击打开文件,启动Tomcat服务器 5、在控制台里面的最后面显示的Server startup in XXXX ms,就说明服务器启动成功 6、在浏览器中输入网址 http:/localhost:8080/ 转到网站,如果出现以下界面就说明服务器配置成功了!

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册