chef

kettle学习笔记(一)——入门与安装

廉价感情. 提交于 2020-04-28 12:14:35
一、概述   1.kettle是什么   Kettle是一款国外开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行,绿色无需安装,数据抽取高效稳定。中文名称叫水壶,该项目的主程序员MATT 希望把各种数据放到一个壶里,然后以一种指定的格式流出。   更多介绍,参考kettle中文网: http://www.kettle.net.cn/   2.kettle四大家族   Chef(中文:厨师)、Kitchen(中文:厨房)、Spoon(中文:勺子)、Pan(中文:平底锅)     Chef—工作(job)设计工具 (GUI方式)     Kitchen—工作(job)执行器 (命令行方式)     Spoon—转换(transform)设计工具 (GUI方式)     Span—转换(transform)执行器 (命令行方式) 二、安装与配置     1.前置条件       JDK1.5+     2.下载       Data Integration (or Kettle) 7.1版本下载: https://sourceforge.net/projects/pentaho/files/Data%20Integration/7.1/pdi-ce-7.1.0.0-12.zip/download 。      其他版本可以通过在下载页选择     3.安装

DevOps工程师技能

此生再无相见时 提交于 2020-04-27 10:18:48
技术背景 DevOps工程师必须持有计算机科学、工程或其他相关领域的学位。2年以上工作经验。这包括开发人员、系统管理员或devops驱动的团队成员的工作。这是一个重要的需求,同时也是对所有IT操作的理解。 自动化工具的经验 了解用于测试和部署的开源解决方案是DevOps工程师必须具备的知识。如果您使用的是云服务器,请确保您的候选人具有使用GitHub、Chef、Puppet、Jenkins、Ansible、Nagios和Docker等工具的经验。此职位的候选人还必须具有使用公共云(如Amazon AWS、Microsoft Azure和谷歌云)的经验。 编程技能。 工程师不仅要知道现成的工具,还要有编程经验,包括脚本和编码。脚本编制技能通常需要Bash或PowerShell脚本的知识,而编码技能可能包括Java、c#、c++、Python、PHP、Ruby等,或者至少是其中一些语言。 数据库系统知识。 在部署阶段,工程师处理数据处理,这需要有SQL或NoSQL数据库模型的经验。 沟通和人际交往能力 虽然一个好的候选人必须精通技术方面,但是DevOps专家必须有很强的沟通才能。他/她必须确保团队有效运作,接收和分享反馈以支持持续交付。结果——一个产品——取决于他/她与所有团队成员有效沟通的能力。 参考 https://www.altexsoft.com/blog

自动化运维工具Ansible-基础介绍(一)

走远了吗. 提交于 2020-04-13 11:54:16
【今日推荐】:为什么一到面试就懵逼!>>> 自动化运维工具Ansible-基础介绍 1、简介 ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。主要包括: (1)、连接插件connection plugins:负责和被监控端实现通信; (2)、host inventory:指定操作的主机,是一个配置文件里面定义监控的主机; (3)、各种模块核心模块、command模块、自定义模块; (4)、借助于插件完成记录日志邮件等功能; (5)、playbook:剧本执行多个任务时,非必需可以让节点一次性运行多个任务。 2、特性 (1)、no agents:不需要在被管控主机上安装任何客户端; (2)、no server:无服务器端,使用时直接运行命令即可; (3)、modules in any languages:基于模块工作,可使用任意语言开发模块; (4)、yaml not code:使用yaml语言定制剧本playbook; (5)、ssh by default:基于SSH工作; (6)

java框架学习日志-7(静态代理和JDK代理)

╄→гoц情女王★ 提交于 2020-03-17 15:12:23
某厂面试归来,发现自己落伍了!>>> 静态代理 我们平时去餐厅吃饭,不是直接告诉厨师做什么菜的,而是先告诉服务员点什么菜,然后由服务员传到给厨师,相当于服务员是厨师的代理,我们通过代理让厨师炒菜,这就是代理模式。代理模式需要三个东西: 真实对象——厨师(chef),用户真正需要去用到的对象。 调用者——客人(Client),需要用到真实对象的对象。 代理对象——服务员(waiter),代理真实对象与调用者沟通的对象。 厨师需要有个炒菜的方法,服务员负责代理厨师,所以也需要有一个炒菜方法,为了保证两个对象的炒菜方法一致,需要一个接口。 public interface Cook { public void cook(String name);//传入菜品名字 } 然后chef实现这个接口 public class Chef implements Cook{ @Override public void cook(String name) { System.out.println("正在炒"+name); } } waiter也需要实现这个接口 public class Waiter implements Cook{ Chef chef; public Waiter(Chef chef) { //通过构造函数与获取chef的实例对象 this.chef = chef; }

SpringCloudConfig配置中心选型思考

痞子三分冷 提交于 2020-02-28 09:34:10
分布式配置中心选型思考 基于2.2.1.RELEASE版本, >>>官方文档<<< 衡量指标: 有靠谱的web管理系统,至少常规的配置参数管理功能,如:修改、删除、新增等 要有比较高服务稳定性 最好能支持分布式,长远考虑有利于扩展 开源,至少有开源版本 有热度,使用和维护的人多,大厂背书 开发语言不能是小众的,最好是主流的语言 部署实施简单,有容器化版本是最好 数据存储和备份支持,能恢复 系统独立性好,不能有太多三方依赖 Vault Vault是一个有web界面的配置存储和管理工具,成熟现代的商业软件同时有开源的社区版。就这个软件来说功能齐全,社区热度高持续迭代中。 Consul 研究Vault时,看到官网有提到相关比较,顺便看了看 Consul不仅仅是一个服务注册与发现中间件,同时还能提供配置存储管理能力,这一点确实很地道的功能。要是你的服务注册发现正好使用的是consul,推荐直接采用同时作为配置管理,因为consul在高可用、高扩展、存储上能力非常强,不需要过多解释。 Chef 研究Vault时,看到官网有提到相关比较,顺便看了看 自动化服务器配置管理工具,比较适合服务器级别的运维,可以进行脚本模版化运行,是DevOps中运维自动化模块解决方案之一,有开源版本和商业版本。采用Ruby开发,有web界面,很多大型公司在用,社区热度足够。Chef工具的使用

what ruby features are used in chef recipes?

柔情痞子 提交于 2020-02-25 16:52:27
问题 I just started using chef and don't know much about ruby. I have problems understanding the language-syntax used in recipes. Say, I create a directory in a cookbook in recipes/default.rb like: directory "/home/test/mydir" do owner "test" mode "0755" action :create recursive true end I assume this is part of a valid ruby script. What do lines like owner "test" mean? Is this a function call, a variable assignment or something else entirely? 回答1: Chef is written in Ruby and makes an extensive

chef test-kitchen Could not load the 'vagrant' driver from the load path 问题解决

拥有回忆 提交于 2020-02-14 03:51:35
今天使用chef 的kitchen,运行 kitchen list 发现了如下错误: >>>>>> ------Exception------- >>>>>> Class: Kitchen::ClientError >>>>>> Message: Could not load the 'vagrant' driver from the load path. Did you mean: dummy, exec, proxy ? Please ensure that your driver is installed as a gem or included in your Gemfile if using Bundler. >>>>>> ---------------------- >>>>>> Please see .kitchen/logs/kitchen.log for more details >>>>>> Also try running `kitchen diagnose --all` for configuration 解决过程: 首先进行github 搜索,发现类似的问题,但是已经很早了2015年的 issue 尝试过使用此方法进行解决但是没有作用 google 搜索到另外一个解决方案: stackoverflow 发现使用此方法可以 chef exec kitchen

DevOps 学习之路

梦想与她 提交于 2020-02-10 22:39:03
需求:confluence 开发:jira、svn、git、gradle、maven 构建:jenkins、ant、各种plugins 测试:junit、monkeyrunning、Robotium 部署:weblogic、tomcat、apache、应用商店 监控:patrol、Nagios、Zabbix 运营:数据采集、大数分析、数据可视化、echart、hchart ———————————————— 1. 编程语言 python,java.... 2. 了解不同的操作系统概念 linux系统 3.掌握终端生存大法 Linux 的 shell,如 Bash、或者 Ksh;一些小工具比如 find、grep、awk、sed、lsof;还有网络命令像 nslookup 和 netstat 。 4. . 网络和安全 要想成为优秀的 DevOps 工程师,你得对基本的网络和安全概念有所了解,比如 DNS、OSI 模型、 HTTP 、HTTPS、FTP、SSL、TLS 等。 为了获得这些概念的最新信息,你应该看看 Ed Liberman 在 Pluralsight 上 推荐给 IT 人员的 TCP/IP 和网络基础 教程。 如果你还需要更多选择,也可以去看看 Udemy 的教程,比如网络方面的 完整的网络基础 就很优秀,安全方面的 完整信息安全课程:网络安全! 。 5.是什么,如何安装

codechef Chef and The Colored Grid

孤者浪人 提交于 2020-02-09 22:52:07
难度 \(hard\) 题意 \(3\times n\) 的方格,前两行已分别填入 \(n-\) 排列,要求求第三行填入 \(n-\) 排列,使得每行每列数不重复的方案数(数据保证前两行合法) \(n\le 1000\) 做法 建立二部图 \(G\) :左部分为位置,右部分为数字,边为可行 则转换为求二部图完美匹配方案数 考虑容斥, \(G\) 的补图为 \(G'\) ,其是一个性质很好的二部图:每个左节点恰好连出两条边 设 \(F(x)\) 为 \(K_{n,n}\) 完美匹配,恰好用到 \(G'\) 的 \(x\) 条边, \(\varphi(x,G')\) 为 \(G'\) 恰好用到 \(x\) 条边的方案数 显然: \[F(x)=\varphi(x,G')(n-x)!-F(x+1)\binom{x+1}{x}-...-F(n)\binom{n}{x}\] 考虑计算 \(\varphi(x,G')\) 设 \(C(x,n)\) 为阶为 \(n\) 的圈匹配为 \(x\) 的方案数; \(L(x,n)\) 为阶为 \(n\) 的链匹配为 \(x\) 的方案数 显然: \[L(k, n) = L(k-1, n-2) + L(k, n-1);C(k, n) = L(k, n) + L(k-1, n-2)\] 然后用 \(C\) 背包一下就行 来源: https://www

Should I use include_recipe or add the recipe to run_list?

旧时模样 提交于 2020-01-30 14:18:28
问题 Trying to figure out the best approach for a large project. When is it appropriate to add recipes within a recipe by using include_recipe as opposed to adding the recipe to the run_list ? Is there a good rule of thumb? 回答1: As I see it, any recipe should be able to run on an empty machine on its own. So if some recipe A depends on recipe B run before it, I always use include_recipe. For example: 2 cookbooks, tomcat and java. Tomcat requires java. When some user wants to install tomcat, he may