fabric

如何高效地远程部署?自动化运维利器 Fabric 教程

荒凉一梦 提交于 2020-02-26 07:40:58
关于 Python 自动化的话题,在 上一篇文章 中,我介绍了 Invoke 库,它是 Fabric 的最重要组件之一。Fabric 也是一个被广泛应用的自动化工具库,是不得不提的自动化运维利器,所以,本文将来介绍一下它。 Fabric 主要用在应用部署与系统管理等任务的自动化,简单轻量级,提供有丰富的 SSH 扩展接口。在 Fabric 1.x 版本中,它混杂了本地及远程两类功能;但自 Fabric 2.x 版本起,它分离出了独立的 Invoke 库,来处理本地的自动化任务,而 Fabric 则聚焦于远程与网络层面的任务。 为了做到这点,Fabric 主要依赖另一大核心组件 Paramiko,它是基于 SSH 协议的远程控制模块,Fabric 在其基础上封装出了更加友好的接口,可以远程执行 Shell 命令、传输文件、批量操作服务器、身份认证、多种配置与设置代理,等等。 一、Fabric 的版本区分 Python 2 版本已经被官宣在今年元旦“退休”了,未来只会是 Python 3 的舞台。为了适应 Python 版本的非兼容性迁移,很多项目也必须推出自己的新版本(兼容或只支持 Python 3),其中就包括本文的主角 Fabric。 Fabric 自身存在着 2 个大版本:Fabric 1 和 Fabric 2,而在这个库的基础上,还有两个很容易混淆的相关库:Fabric2 和

Tungsten Fabric与K8s集成指南丨部署准备与初始状态

末鹿安然 提交于 2020-02-26 05:28:08
Hi!欢迎来到Tungsten Fabric与Kubernetes集成指南系列,本文介绍K8s组件和Tungsten Fabric组件部署的准备工作,以及运行的初始状态。 Tungsten Fabric与K8s集成指南系列文章,由TF中文社区为您呈现,旨在帮助大家了解Tungsten Fabric与K8s集成的基础知识。大家在相关部署中有什么经验,或者遇到的问题,欢迎与我们联系。 说明:文中部分内容涉及到“Contrail”,Tungsten Fabric原名为OpenContrail,商业版本为Juniper Contrail。 1环境需求 2部署架构 管理网:用于节点管理,初始化系统,包安装等 控制网:Kubernetes组件和Tungsten Fabric组件的数据交互 3部署步骤 4集群初始状态 K8s集群初始状态 K8s成功部署之后,默认创建的namespaces,deployment,service,以及K8s的节点信息,如下截图所示: Tungsten Fabric初始状态 资源映射关系:K8s与Tungsten Fabric 首先Tungsten Fabric会根据K8s中namespaces来创建对应的project,因为K8s中有4个namespace,所以Tungsten Fabric也自动新建了4个项目,对应如下。 Tungsten

Chaincode的开发环境和Hello world

倾然丶 夕夏残阳落幕 提交于 2020-02-26 01:55:47
Chaincode的开发环境和Hello world 使用GO lang对Chaincode进行开发 # 安装Golang的SDK go get github.com/hyperledger/fabric-sdk-go # 安装shim包 go get -u github.com/hyperledger/fabric/core/chaincode/shim ​ 启动链码必须通过调用shim包中的Start函数实现,而Start函数被调用时需要传递一个类型为Chaincode的参数,这个Chaincode参数是一个接口类型,该接口中有两个重要的函数——Init和Invoke。 type Chaincode interface{ Init(stub ChaincodeStubInterface) peer.Response Invoke(stub ChaincodeStubInterface) peer.Response } Init: 在链码实例化或升级时被调用,完成初始化数据的工作。 Invoke: 在更新或查询提案事务中的分类账本数据状态时被调用,因此响应调用或查询的业务实现逻辑都需要在此函数中编写实现。 在实际开发中,开发人员可以自行定义一个结构体,然后重写Chaincode接口的两个函数,并将两个函数指定为自定义结构体的成员方法 必要结构 package main //

Minecraft Fabric Client 教程 #5 添加Event、Sprint和ToggleCommand

邮差的信 提交于 2020-02-25 18:45:37
首发于 Enaium的个人博客 添加Event 下载 放在 cn.enaium.excel 里 然后在 Excel.java 里面添加 EventManager public enum Excel { [...] public EventManager eventManager; public void onEnable() { eventManager = new EventManager(); commandManager = new CommandManager(); moduleManager = new ModuleManager(); moduleManager.loadModules(); } [...] } 在 Module.java 里面添加 Event 、 onEnable() 、 onDisable() 、 Toggle() public class Module { [...] public void Toggle() { this.toggled = !this.toggled; if (this.toggled) { onEnable(); } else { onDisable(); } } public void onEnable() { Excel.INSTANCE.eventManager.register(this); } public void

Minecraft Fabric 教程 #9 添加盔甲

北城余情 提交于 2020-02-25 17:29:53
首发于 Enaium的个人博客 创建一个盔甲类 public class EndArmorMaterials implements ArmorMaterial { [...] } 复制一下内容 private static final int[] BASE_DURABILITY = {13, 15, 16, 11}; private final String name; private final int durabilityMultiplier; private final int[] protectionAmounts; private final int enchantability; private final SoundEvent equipSound; private final float toughness; private final Lazy<Ingredient> repairIngredientSupplier; public EndArmorMaterials(String name, int durabilityMultiplier, int[] armorValueArr, int enchantability, SoundEvent soundEvent, float toughness, Supplier<Ingredient>

Minecraft Fabric 进阶教程 #2 绘制界面

雨燕双飞 提交于 2020-02-24 18:42:38
首发于 Enaium的个人博客 绘制界面不需用注入Mixin 新建一个类 ExampleGui.java 继承 Screen 构造器 public ExampleGui() { super(new LiteralText("")); } 绘制 这是绘制一个背景 绘制背景这种全部覆盖时要在super上面不然按钮或者其他东西会被背景盖住 @Override public void render(int mouseX, int mouseY, float delta) { renderBackground(); super.render(mouseX, mouseY, delta); } 我们也可以添加一个按钮 @Override public void init() { super.init(); this.addButton(new ButtonWidget(20,20,100,20,"Done",(action)->{ })); } 打开界面 将上集绘制的按钮的action改为打开这个界面 @Inject(at = @At("HEAD"), method = "init()V") private void init(CallbackInfo info) { this.addButton(new ButtonWidget(20,20,200,20,"233",(action)->{

Fabric区块链第三方CA使用教程

混江龙づ霸主 提交于 2020-02-23 10:54:09
Hyperledger Fabric(HF)为终端用户使用自有CA提供了fabric-ca工具。然而在生产环境中应当尽可能保证根CA的安全性,例如让根CA离线,而将Hyperledger Fabric环境中的证书签发代理给中间 CA。在本文中,我们将介绍如何使用第三方CA作为根CA,使用fabric-ca作为中间CA,以及如何在CA信任链中整合第三方CA与fabric-ca。 Hyperledger Fabric区块链开发教程: Node.js | Java | Golang 1、准备工作 为了演示外部CA和中间CA的使用,我们将部署一个根CA,它只负责签发中间CA的证书。这个中间CA采用Fabric CA,负责签发用户和节点证书。出于简化考虑,在这个教程中,我们将使OpenSSL。 在开始之前,请参考相应文档先完成以下前置环节的部署和知识准备: 安装docker、docker-compose、git和curl Hyperledger Fabric和bash/sheel脚本基础知识 PKI基础知识 克隆本教程演示代码仓库,其中包含了所有用到的脚本: git clone https://github.com/aldredb/external-ca cd external-ca 下载Hyperledger Fabric预编译程序并删除不需要的文件。我们只用到cryptogen,

quagga 删除 network

落花浮王杯 提交于 2020-02-20 13:26:07
localhost.localdomain# show running-config Building configuration... Current configuration: ! frr version 7.3-MyOwnFRRVersion frr defaults traditional hostname localhost.localdomain ! router bgp 81 bgp router-id 10.10.16.81 bgp bestpath as-path multipath-relax neighbor fabric peer-group neighbor fabric remote-as external neighbor 10.10.18.195 peer-group fabric ! address-family ipv4 unicast network 10.81.81.0/24 exit-address-family ! address-family l2vpn evpn neighbor fabric activate advertise-all-vni exit-address-family ! line vty ! end localhost.localdomain# config localhost.localdomain

Fabric v1.x 账本与状态数据库

拈花ヽ惹草 提交于 2020-02-20 07:08:01
文章目录 一、Fabric账本 二、区块链 2.1 区块信息 2.2 交易信息 三、世界状态 一、Fabric账本 Fabric账本是有序的、不可篡改的状态转换记录,包括区块链(Blockchain)和世界状态(World stat)两部分。 区块链中保存着不可变的顺序记录,包含配置记录,例如channel的配置;还包含全部交易记录; 世界状态中维护账本的当前状态,方便Appication快速查询 二、区块链 区块链是一个历史交易记录,记录着所有数据对象是如何到达当前状态的。 下图中有4个区块B0、B1、B2、B3,第一个区块B0为创世区块(genesis block),保存一些配置信息,包括Order、peer的信息和证书信息;后面的区块B1、B2、B3则保存着后续交易信息: 2.1 区块信息 区块分为3部分,分别为区块头(Block header)、区块数据(Block Data)、区块元数据(Block Data): 区块头里面包含区块序号(Block number)、当前区块哈希(Current Block Hash)、上一个区块哈希(Previous Block Hash), 区块数据就是一系列交易数据; 区块元数据主要包含区块写入时间、写入的人以及签名。 2.2 交易信息 交易(Transaction)保存着捕获的关于交易的一些基本元数据: transaction

如何高效地远程部署?自动化运维利器 Fabric 教程

試著忘記壹切 提交于 2020-02-18 18:43:01
关于 Python 自动化的话题,在 上一篇文章 中,我介绍了 Invoke 库,它是 Fabric 的最重要组件之一。Fabric 也是一个被广泛应用的自动化工具库,是不得不提的自动化运维利器,所以,本文将来介绍一下它。 Fabric 主要用在应用部署与系统管理等任务的自动化,简单轻量级,提供有丰富的 SSH 扩展接口。在 Fabric 1.x 版本中,它混杂了本地及远程两类功能;但自 Fabric 2.x 版本起,它分离出了独立的 Invoke 库,来处理本地的自动化任务,而 Fabric 则聚焦于远程与网络层面的任务。 为了做到这点,Fabric 主要依赖另一大核心组件 Paramiko,它是基于 SSH 协议的远程控制模块,Fabric 在其基础上封装出了更加友好的接口,可以远程执行 Shell 命令、传输文件、批量操作服务器、身份认证、多种配置与设置代理,等等。 一、Fabric 的版本区分 Python 2 版本已经被官宣在今年元旦“退休”了,未来只会是 Python 3 的舞台。为了适应 Python 版本的非兼容性迁移,很多项目也必须推出自己的新版本(兼容或只支持 Python 3),其中就包括本文的主角 Fabric。 Fabric 自身存在着 2 个大版本:Fabric 1 和 Fabric 2,而在这个库的基础上,还有两个很容易混淆的相关库:Fabric2 和