fabric挖矿命令
『壹』 华为交换机理有个配置是 undo irf-fabric authentication-mode
1,在没有开启Fabric端口的情况下,不能更改本地交换机的Unit ID。
在设备的Unit ID修改后,Fabric的配置文件中关于该设备的配置将自动更新编号信息,例如在将Unit ID由2变更为4之后,配置文件中该设备的端口将自动由“2/0/x”修改为“4/0/x”,而无需用户手工更新配置。
2,Quidway S3900系列交换机提供了IRF自动堆叠功能,可以在候选交换机与Fabric中现有设备的软件版本和Fabric name不同的情况下,使候选交换机自动完成软件下载和Fabric name的修改工作,减少手工维护的工作量.
3,
irf-fabric authentication-mode命令用来配置IRF Fabric的认证模式及认证密码。undo irf-fabric authentication-mode命令用来取消IRF Fabric认证的相关配置。 缺省情况下,交换机上没有配置认证模式。
IRF Fabric的认证功能主要用于保证接入Fabric的设备的安全性,只有配置了相同认证模式和认证密码的授权设备才能够接入现有Fabric。
『贰』 关于fabric 并行执行任务求助
上篇笔记介绍了Fabric的概念、支持的元操作及task的定义方法,本篇笔记旨在说明如何在多台目标机器上正确地执行tasks以实现远程自动部署或运维。特别地,文中会说明如何配置fabric task以便远程执行命令时不会弹出密码输入提示。
1. Fabric的任务运行规则
根据Fabric Execution model的说明,fabric默认以串行方式运行tasks,具体而言:
1)在fabfile及其import文件中定义的task对象依次被创建(只是创建对象,并未真正执行),任务之间保持其定义的先后顺序。
2)对于每个task,生成将要运行该task的目标机器列表。
3)fab执行tasks时,按任务被指定的顺序依次执行这些任务;针对每个任务,依次在其指定的目标机器运行且只运行一次。
4)未指定目标机器的task被当作本地任务运行,且只会被运行一次。
假设在fabfile.py中定义了如下tasks:
from fabric.api import run, envenv.hosts = ['host1', 'host2']def taskA(): run('ls')def taskB(): run('whoami')
在终端运行fab –list时,我们会看到taskA和taskB两个任务,运行之:
$ fab taskA taskB
结果示例如下:
taskA executed on host1taskA executed on host2taskB executed on host1taskB executed on host2
通过上面的实例,大家应该可以明白fabric默认的串行执行策略是怎么回事。
Fabric还允许我们指定以并行方式(借助multiprocessing模块实现多个进程并行执行)在多台机器上并行地运行任务,甚至还可在同一个fabfile文件中指定某些task以并行方式运行,而某些task以默认的串行方式运行。具体地,可以借助@parallel或@serial指定任务的运行模式,还可以在命令行中通过-P参数指定任务是否要并性执行。示例如下:
from fabric.api import *@paralleldef runs_in_parallel(): passdef runs_serially(): pass
当运行如下命令时:
$ fab -H host1,host2,host3 runs_in_parallel runs_serially
执行结果示例如下:
runs_in_parallel on host1, host2, and host3runs_serially on host1runs_serially on host2runs_serially on host3
此外,还可以通过对@parallel传入pool_size参数来控制并行进程数以防并行进程太多把机器拖垮。
2. 为task指定目标机器
有多种方式可以指定任务的将要运行的目标机器,下面分别进行说明。
1)通过env.hosts或env.roles进行全局指定
Fabric的env模块中定义了一系列全局变量,可以将其理解为可以控制fabric行为的环境变量。其中env.hosts和env.roles可以用来全局指定task的目标机器列表,这两个“环境变量”的默认值都是空列表[]。
env.hosts的元素是fabric约定的”host strings”,每个host strings由username@hostname:port三部分构成,其中username和port部分可以缺省。本篇笔记前面的第1个代码实例其实已经说明了如何用env.hosts全局地指定task的目标机器列表,这里不再赘述。
env.roles则是在配置了env.roledefs的情况下才有用武之地。在很多时候,不同的机器有着不同的角色,如有些是接入层,有些是业务层,有些是数据存储层。env.roledefs可以用来组织这些机器列表以体现其角色,示例如下:
from fabric.api import envenv.roledefs = { 'web': { 'hosts': ['www1', 'www2', 'www3'], }, 'db': { 'hosts': ['db1', 'db2'], }}@roles('web')def mytask(): run('ls /var/www')
上例通过env.roledefs配置了两个角色web和db,分别包含3台、2台机器,并借助@roles为mytask指定了目标机器列表。
2)通过命令行进行全局指定
$ fab -H host1,host2 mytask
需要注意的是,命令行通过-H参数指定的机器列表在fabfile脚本load前被解释,故如果fabfile中重新配置了env.hosts或env.roles,则命令行指定的机器列表会被覆盖。为了避免fabfile覆盖命令行参数,在fabfile中应该借助list.extend()指定env.hosts或env.roles,示例如下:
from fabric.api import env, runenv.hosts.extend(['host3', 'host4'])def mytask(): run('ls /var/www')
此时,当我们运行”fab -H host1,host2 mytask”时,env.hosts包含来自命令行和fabfile的4台机器。
3)通过命令行为每个任务指定机器列表
$ fab mytask:hosts="host1;host2"
上述方式会覆盖全局指定的机器列表,确保mytask只会在host1, host2上执行。
4)借助装饰器@hosts为每个任务指定目标机器
from fabric.api import hosts, run@hosts('host1', 'host2')def mytask(): run('ls /var/www')
或者:
my_hosts = ('host1', 'host2')@hosts(my_hosts)def mytask(): # ...
每个任务的@hosts装饰器指定的机器列表会覆盖全局目标机器列表,但不会覆盖通过命令行为该任务单独指定的目标机器列表。
上述4种为task指定目标机器列表的方式之间的优先级规则总结如下:
1) Per-task, command-line host lists (fab mytask:host=host1) override absolutely everything else.
2) Per-task, decorator-specified host lists (@hosts(‘host1’)) override the env variables.
3) Globally specified host lists set in the fabfile (env.hosts = [‘host1’]) can override such lists set on the command-line, but only if you’re not careful (or want them to.)
4) Globally specified host lists set on the command-line (–hosts=host1) will initialize the env variables, but that’s it.
截止目前,我们可以看到,fabric允许我们混合使用上面列出的几种目标机器指定方式,但是我们要明白混合的结果是否符合预期。
此外,fabric默认会对通过不同来源出现多次的同一个目标机器做去重,当然,可以通过设置env.depe_hosts为False来关闭默认的去重策略。甚至还可以指定任务需要跳过的机器列表。具体细节可以参考Fabric Execution model的说明,这里不赘述。
3. 任务执行时,目标机器的密码管理
如果你亲自运行上面的示例代码,就会发现,每次在目标机器远程执行task时,fabric均会要求输入目标机器的登录名及密码。如果要在多台机器上执行task,那这些密码输入的过程可以自动化吗?
答案是肯定的。实现方式有两种,下面分别进行说明。
1)通过env.password或env.passwords配置目标机器的登录信息
下面的示例说明了如何通过env.passwords配置多台机器的登录信息:
#!/bin/env python#-*- encoding: utf-8 -*-from fabric.api import run, env, hosts## 需要注意的是,这里的host strings必须由username@host:port三部分构成,缺一不可,否则运行时还是会要求输入密码env.passwords = { '[email protected]:22': 'xxx', '[email protected]:23': 'yyy',}@hosts('10.123.11.209', '10.123.11.210')def host_os_type(): run('uname -a')
由于通过env.passwords配置了目标机器的登录用户名/密码,所以,当我们在终端运行fab host_os_type时,会发现不用手动输入密码了,大大方便了脚本远程自动执行。
但是,这种明文指定登录名/密码的方式存在安全性问题,所以,fabric还支持以ssh key认证的方式免密在远程机器执行任务。
在具体实现上,需要事先在目标机器上生成ssh public key并配置在~/.ssh/config文件中,然后在定义任务的fabfile中将env.use_ssh_config设置为True来启用基于ssh public key方式的身份认证,以便实现免密码远程执行任务。
具体细节可以参考Fabric Leveraging native SSH config files文档的说明,或者参考StackOverflow的这篇帖子Connecting to a host listed in ~/.ssh/config when using Fabric,限于篇幅,这里不再赘述。
最后,推荐DigitalOcean上一篇Fabric教程How To Use Fabric To Automate Administration Tasks And Deployments,浅显易懂,值得一读。Enjoy it
『叁』 怎么将fabric-sdk-java-master在myeclipse中使用
方法步骤如下:前提:系统已经安装gradle1.下载MaterialDrawer-develop.zip,并进行解压。2.新建文件夹MaterialDrawerProjects\library3.将目录MaterialDrawer-develop\library\src\main下的文件拷贝到新建的文件夹下,并将java文件夹重命名为src4.文件MaterialDrawer-develop\library\build.gradle开头处,添加“applyplugin:'eclipse'”5.启动cmd,进入目录MaterialDrawer-develop,执行命令:gradleeclipse6.目录MaterialDrawer-develop\library会生成两个文件.classpath和.project7.将生成的文件.classpath和.project拷贝到MaterialDrawerProjects\library下8.将.project下的library修改为MaterialDrawerlibrary9.通过eclipse软件将MaterialDrawerProjects\library导入到工程10.MaterialDrawerProjects\library依赖的库,需要仿造上面的步骤导入到eclipse中recycleriview:androidSDK自带的库(路径:extras\android\support\v7)MaterializeLibary(github.com/mikepenz/Materialize),前面加上pat,也需要导入到eclipse。
『肆』 fabric == 2.4.0怎么上传多个服务器
将目录下Moles/Setup.dist文件中”readline readline.c-lreadline -ltermcap”行前的注释去掉
编译安装:
./configure –enable-shared
make -j8 && make install
安装setuptools
tar xf setuptools-0.6c11.tar.gz
cd setuptools-0.6c11
python setup.py install
安装fabric
执行安装时,软件会自动从网上查找依赖的安装包并进行安装
tar xf fabric-0.9rc2.tar.gz
cd goosemo-fabric-1eacbf2
python setup.py install
『伍』 python fabric与shell比较有何优势
以下假定你的使用场景是命令行的脚本。
问题中提到的三个脚本语言(环境),自己都在使用,我的想法是,任何技术都有其擅长的领域和限制,具体到这个问题,显然Python更加强大和通用(general purpose),shell是 类unix下的命令行语言,bat可认为是shell在Win下的替代品。
所以(假如只能三选一来学习):
1. 如果只在类unix环境下使用,建议Python(因为Python基本在所有的类unix操作系统都是内置的)
2. 如果是Win并且可以安装Python,建议Python; 如果不能安装,则只能bat
事实上,在命令行脚本方面,我的建议是能够使用Python尽量使用Python,因其优美、可读、字符串处理的强大、跨平台等。
『陆』 如何用Fabric实现无密码输入提示的远程自动部署
上篇笔记介绍了Fabric的概念、支持的元操作及task的定义方法,本篇笔记旨在说明如何在多台目标机器上正确地执行tasks以实现远程自动部署或运维。特别地,文中会说明如何配置fabric task以便远程执行命令时不会弹出密码输入提示。
1. Fabric的任务运行规则
根据Fabric Execution model的说明,fabric默认以串行方式运行tasks,具体而言:
1)在fabfile及其import文件中定义的task对象依次被创建(只是创建对象,并未真正执行),任务之间保持其定义的先后顺序。
2)对于每个task,生成将要运行该task的目标机器列表。
3)fab执行tasks时,按任务被指定的顺序依次执行这些任务;针对每个任务,依次在其指定的目标机器运行且只运行一次。
4)未指定目标机器的task被当作本地任务运行,且只会被运行一次。
假设在fabfile.py中定义了如下tasks:
from fabric.api import run, envenv.hosts = ['host1', 'host2']def taskA(): run('ls')def taskB(): run('whoami')
在终端运行fab –list时,我们会看到taskA和taskB两个任务,运行之:
$ fab taskA taskB
结果示例如下:
taskA executed on host1taskA executed on host2taskB executed on host1taskB executed on host2
通过上面的实例,大家应该可以明白fabric默认的串行执行策略是怎么回事。
Fabric还允许我们指定以并行方式(借助multiprocessing模块实现多个进程并行执行)在多台机器上并行地运行任务,甚至还可在同一个fabfile文件中指定某些task以并行方式运行,而某些task以默认的串行方式运行。具体地,可以借助@parallel或@serial指定任务的运行模式,还可以在命令行中通过-P参数指定任务是否要并性执行。示例如下:
from fabric.api import *@paralleldef runs_in_parallel(): passdef runs_serially(): pass
当运行如下命令时:
$ fab -H host1,host2,host3 runs_in_parallel runs_serially
执行结果示例如下:
runs_in_parallel on host1, host2, and host3runs_serially on host1runs_serially on host2runs_serially on host3
此外,还可以通过对@parallel传入pool_size参数来控制并行进程数以防并行进程太多把机器拖垮。
2. 为task指定目标机器
有多种方式可以指定任务的将要运行的目标机器,下面分别进行说明。
1)通过env.hosts或env.roles进行全局指定
Fabric的env模块中定义了一系列全局变量,可以将其理解为可以控制fabric行为的环境变量。其中env.hosts和env.roles可以用来全局指定task的目标机器列表,这两个“环境变量”的默认值都是空列表[]。
env.hosts的元素是fabric约定的”host strings”,每个host strings由username@hostname:port三部分构成,其中username和port部分可以缺省。本篇笔记前面的第1个代码实例其实已经说明了如何用env.hosts全局地指定task的目标机器列表,这里不再赘述。
env.roles则是在配置了env.roledefs的情况下才有用武之地。在很多时候,不同的机器有着不同的角色,如有些是接入层,有些是业务层,有些是数据存储层。env.roledefs可以用来组织这些机器列表以体现其角色,示例如下:
from fabric.api import envenv.roledefs = { 'web': { 'hosts': ['www1', 'www2', 'www3'], }, 'db': { 'hosts': ['db1', 'db2'], }}@roles('web')def mytask(): run('ls /var/www')
上例通过env.roledefs配置了两个角色web和db,分别包含3台、2台机器,并借助@roles为mytask指定了目标机器列表。
2)通过命令行进行全局指定
$ fab -H host1,host2 mytask
需要注意的是,命令行通过-H参数指定的机器列表在fabfile脚本load前被解释,故如果fabfile中重新配置了env.hosts或env.roles,则命令行指定的机器列表会被覆盖。为了避免fabfile覆盖命令行参数,在fabfile中应该借助list.extend()指定env.hosts或env.roles,示例如下:
from fabric.api import env, runenv.hosts.extend(['host3', 'host4'])def mytask(): run('ls /var/www')
此时,当我们运行”fab -H host1,host2 mytask”时,env.hosts包含来自命令行和fabfile的4台机器。
3)通过命令行为每个任务指定机器列表
$ fab mytask:hosts="host1;host2"
上述方式会覆盖全局指定的机器列表,确保mytask只会在host1, host2上执行。
4)借助装饰器@hosts为每个任务指定目标机器
from fabric.api import hosts, run@hosts('host1', 'host2')def mytask(): run('ls /var/www')
或者:
my_hosts = ('host1', 'host2')@hosts(my_hosts)def mytask(): # ...
每个任务的@hosts装饰器指定的机器列表会覆盖全局目标机器列表,但不会覆盖通过命令行为该任务单独指定的目标机器列表。
上述4种为task指定目标机器列表的方式之间的优先级规则总结如下:
1) Per-task, command-line host lists (fab mytask:host=host1) override absolutely everything else.
2) Per-task, decorator-specified host lists (@hosts(‘host1’)) override the env variables.
3) Globally specified host lists set in the fabfile (env.hosts = [‘host1’]) can override such lists set on the command-line, but only if you’re not careful (or want them to.)
4) Globally specified host lists set on the command-line (–hosts=host1) will initialize the env variables, but that’s it.
截止目前,我们可以看到,fabric允许我们混合使用上面列出的几种目标机器指定方式,但是我们要明白混合的结果是否符合预期。
此外,fabric默认会对通过不同来源出现多次的同一个目标机器做去重,当然,可以通过设置env.depe_hosts为False来关闭默认的去重策略。甚至还可以指定任务需要跳过的机器列表。具体细节可以参考Fabric Execution model的说明,这里不赘述。
3. 任务执行时,目标机器的密码管理
如果你亲自运行上面的示例代码,就会发现,每次在目标机器远程执行task时,fabric均会要求输入目标机器的登录名及密码。如果要在多台机器上执行task,那这些密码输入的过程可以自动化吗?
答案是肯定的。实现方式有两种,下面分别进行说明。
1)通过env.password或env.passwords配置目标机器的登录信息
下面的示例说明了如何通过env.passwords配置多台机器的登录信息:
#!/bin/env python#-*- encoding: utf-8 -*-from fabric.api import run, env, hosts## 需要注意的是,这里的host strings必须由username@host:port三部分构成,缺一不可,否则运行时还是会要求输入密码env.passwords = { '[email protected]:22': 'xxx', '[email protected]:23': 'yyy',}@hosts('10.123.11.209', '10.123.11.210')def host_os_type(): run('uname -a')
由于通过env.passwords配置了目标机器的登录用户名/密码,所以,当我们在终端运行fab host_os_type时,会发现不用手动输入密码了,大大方便了脚本远程自动执行。
但是,这种明文指定登录名/密码的方式存在安全性问题,所以,fabric还支持以ssh key认证的方式免密在远程机器执行任务。
在具体实现上,需要事先在目标机器上生成ssh public key并配置在~/.ssh/config文件中,然后在定义任务的fabfile中将env.use_ssh_config设置为True来启用基于ssh public key方式的身份认证,以便实现免密码远程执行任务。
具体细节可以参考Fabric Leveraging native SSH config files文档的说明,或者参考StackOverflow的这篇帖子Connecting to a host listed in ~/.ssh/config when using Fabric,限于篇幅,这里不再赘述。
最后,推荐DigitalOcean上一篇Fabric教程How To Use Fabric To Automate Administration Tasks And Deployments,浅显易懂,值得一读。Enjoy it
『柒』 ubuntu搭建hyperledger fabric1.4出现了以下问题,好像一直没有在下载
建议看看《Linux就该这么学》 里面有个专栏是 Linux命令大全(手册)
加入我们的群,一起讨论
Linux就该这么学》是一本注重于实用性的Linux系统技术自学书籍,自基础篇公布后网站每天日常阅读量已经超过10000多人,25万多名忠实粉丝读者,是目前国内人气增速最快的IT书籍。您可以在本网站内免费在线阅读书籍的全部章节及最新内容,今后的进阶篇也将会一如既往免费、完整的提供给亲爱的读者们在线学习。
『捌』 服装英语 高手救命 Fabric Detail Sheet
纽约&公司的织物详细表
季节:
日期: 2008.04.15为:
分工:
供应商质量发展起来的:
面料供应商:
纱线原产国:
织造厂/国家定位的轧机:
针织磨/国家定位的轧机:
戴先生&终结者/国家定位的轧机:
印表机或纱线染色/国家定位的磨坊:
织物质量号:
纱线尺寸/丹尼/ #长丝- (经x纬)
建筑:
捻度每英寸-5 50捻度每米单打:
来往:
内容:
可剪裁宽度:
径:
重量( g/m2之间) ,然后洗/后洗手:
经x纬(威尔士x课程)
每场(轻/中型/暗色彩) :
面料/服装终点:
染料染色方法:
容量/每月:
散装交货期,以针织:
散装交货期,以染料颜色aprvl :
散装交货期打印从罢工小康批准:
散装最低每颜色/命令:
绸胚码数可供查阅:
样本码可每颜色:
样本码数最低数量的百分之颜色:
样本码交货期:
建议护理指导:
织物的历史-2 3年的客户:
手续发运:
月/年:
纱线染色升/时间为升/时间为样本闵重复最大值屏幕
和S /取舍每组合尺寸(长数额或设置
打印方法(周) (周) (码) x宽) clrs收费限制
箔
羊群
直接/亚洲浆纸(湿)
放电(湿)
色素(干)
其他
条纹
y /提花机
固体提花机
织物的过程1 )织造2 )冲刷3 )预设4 )染色( 1 ) 5 ) ,终凝
(机/状态)
6 )中查阅7 )打印8 )检查
『玖』 fabric 支持在linux环境nohup后台运行吗
我想写SHELL脚本同启进程并行执行利用NOHUP& 否行
另 若行写两命令并用号隔表示两命令串行执行
比C1C2C3C4表示4条命令
c1;c2
c3;c4
否C1C2串行执行
C1C2C3C4并行执行
假设每条命令执行程序耗
『拾』 Ubuntu上搭建HyperLedger Fabric过程中,执行 ./byfn.sh generate一直报错
这是我找到的一个解决方法,你看看有没有用:
在启动fabric中first-network网络时,需要执行一个自动化脚本:
./byfn.sh -m generate
该脚本需要自动生成相关证书信息,fabric官方提供了两款工具:configtxgen、cryptogen。在脚本执行中会从fabric-simple/bin中取查找并调用两者。初次启动时没有这个工具的。
解决方法:
进入fabric目录,看见make* 文件,使用make configtxgen、make cryptogen两个指令生成工具(如果之前搭建过fabric-1.0环境,直接进fabric/build将bin文件夹直接移动到fabric-sample目录即可)。生成后的文件在fabric/build/bin里面,移动到相关位置即可。
楼主如果对Linux系统感兴趣,想学习更多Linux系统操作知识,可以网络《Linux就该这么学》,不错的一本Linux入门学习教程。