在 linux 平台下开发自动化部署工具,是不是 python 才是最好的选择,入手 linux 才半年多,这方面也是才疏学浅,请不吝赐教
1
Hieast 2019-02-19 13:40:09 +08:00
我给 python 投一票
|
2
liuzuo 2019-02-19 13:41:49 +08:00
我在写 kotlin,其实想用 go。。。。。。
|
3
tomczhen 2019-02-19 13:45:22 +08:00 via Android
用什么语言主要还是取决于人员和项目,大多数情况下都是有限选择与项目亲和的语言、工具。
|
4
webdisk 2019-02-19 13:46:21 +08:00 2
怎么我觉得 bash shell 好用呢
|
5
SsuchingYu 2019-02-19 13:47:19 +08:00
Python, Ruby, Go,都不错。
|
6
37Y37 2019-02-19 13:48:41 +08:00
挑自己最熟悉的,如果都没有熟悉的那么 bash,python,go 会是不错的学习选择,我们开发了一系列的运维相关工具,用的 python
|
7
daijinming OP @37Y37 其实我们这边还真对 python\go,没有熟悉的,对 dotnet core 倒是熟悉,至于这个 bash 能方便的访问消息队列、数据库什么的吗?
|
8
daijinming OP @tomczhen 你觉得 dotnet core 怎么样
|
9
daijinming OP @webdisk bash shell 没怎么接触过,能详细的介绍下吗,我这边需要操作文件、访问数据库、消息队列
|
10
alvin666 2019-02-19 13:54:32 +08:00 via Android
Python 就是一个胶水语言,各种库能干各种语言能干的事,还能很容易地写出一些基本的逻辑,比较适合。
|
11
tomczhen 2019-02-19 14:03:18 +08:00 via Android
@daijinming PowerShell 应该足够强大了,跨平台需求可以选择 PowerShell core,.net 亲和。由于没有.net core 的具体实践,根据之前接触到情况看,TFS 应该有解决方案,如果不选 TFS 应该可以找一下巨硬相关的最佳实践文档参考一下。
|
12
smallgoogle 2019-02-19 14:05:41 +08:00
觉得 go 好用。。。自身部署就简单。
|
13
w7938940 2019-02-19 14:07:55 +08:00
Ruby
|
14
daijinming OP @smallgoogle 这个我倒是听说过,之前就算是后起之秀。用 go 执行 shell 命令,比如调用 docker 这方面的资料是否多那
|
15
xomix 2019-02-19 14:24:13 +08:00
其实都可以,但是你 google 一下就知道 python 的资料丰富全面,所以用什么我也不用多说了。
|
16
hoyixi 2019-02-19 15:00:04 +08:00
很多自动化工具都是 Ruby 写的~不很复杂的简单任务,可能 Linux Shell 一个小脚本就搞定了,用其它脚本语言反而兜圈子~
没有好不好,关键看适不适合。比如你是 Ruby 程序员,再学个 Python 去写部署?显然不合适~ 如果都没啥基础,Python 可能上手快,找现成的资源更容易,而且开发长期维护的、重复使用的、通用工具的话,Shell 可能有点痛苦,Ruby 代码灵活(多人合作的话,如果对该语言熟练程度不够,你看别人代码可能会蛋疼),Python 中规中矩。 个人倾向于 Python~ |
17
kzfile 2019-02-19 15:02:24 +08:00
我直接 docker 部署了
|
18
GiantHard 2019-02-19 15:12:36 +08:00 via Android
我觉得 fake.build 挺好,感觉就是看个人喜好跟团队喜好吧
|
19
daijinming OP @hoyixi 初学者对于 python 有中奇怪的感觉 ,一般 linux 都预装 python2 ,但是书本都教授 python3,自动化工具采用那个版本比较合适那?另外可能是开发.net 给的想法,python 做自动化工具是开启一个 web 服务那,还是一个控制台应用?
|
20
ilgharkus 2019-02-19 16:08:16 +08:00
@daijinming #19
从 2018 年开始,大部分 Linux 发行版预装 Python2 和 Python3。从长远角度来看,推荐使用 python3。 原因请戳这里: https://pythonclock.org/ :-) |
21
webdisk 2019-02-19 19:49:23 +08:00 1
|
22
mritd 2019-02-19 22:05:38 +08:00 via iPhone
@daijinming #14 调用 docker 你就不要用命令了,直接用 docker 的 sdk 啊,docker 就是 go 写的
|
23
j0ck1e 2019-02-19 22:22:33 +08:00
linux 自动化工具一般用来解决什么问题啊?
|
24
iwtbauh 2019-02-20 00:04:21 +08:00 via Android
相对于 bash shell,我更倾向于使用 POSIX shell,因为 POSIX shell 是可移植的。
|
25
iwtbauh 2019-02-20 00:07:37 +08:00 via Android
@daijinming #7
把访问消息队列的接口封装成的 C/C++/...程序,并从 shell 调用 访问数据库可以直接调用数据库客户端,以 mariadb 为例 mysql -u$USER -p$PASS $DATABASE <<EOF 把 sql 语句放到这里 EOF 怎么防止注入看我前两天刚回复的一个帖子 |
26
zbl430 2019-02-20 09:18:21 +08:00
go 编译 xxxx
运行 $ ./xxxx |
27
EscYezi 2019-02-20 09:38:52 +08:00 via iPhone
其实 PHP 也是可以的……毕竟都是脚本语言
|
28
julyclyde 2019-02-20 10:56:56 +08:00
这类东西还需要去开发,基本上你已经错了
|
29
Hasal 2019-02-20 11:49:04 +08:00
要看负责部署工具开发的团队技术水平,通常来讲部署与运维相关,也就是看运维团队技术水平。
前几年 python 选择的比较多,大部分运维都会 Python,对工具上手开发、维护都比较容易。 以我所在公司为例,最开始是 python,后来转到 Go,用了一阵发现 Go 招人没那么容易(其实是钱没给到位),目前已经换成 Java,招人容易多了。 |
30
yuhr123 2019-02-20 11:54:26 +08:00
简单的就 bash
|
31
ps1aniuge 2019-02-20 15:26:08 +08:00 1
使用 powershell,python 没有命令行。py 在系统运维脚本这块,弱于 powershell。
使用 powershell,bash 参数 tab 补全,太 tm 麻烦。属性补全不行,python 没有参数不全。go 没有参数补全,或者说 go 参数补全依赖于 bash。 使用 powershell,支持强类型,shell 不行。使用 powershell 的 yaml 模块,读取.yaml 配置文件。 操作文件----自己的特长。 访问数据库---通过如 mysql 客户端,或 mysql 的。net 的 dll。 消息队列---通过如客户端, 支持中文脚本名,参数名,别名。猪都能懂。 如:dq 读取 xxx.ps1 -队列 入群技术支持:183-173-532 问:目前哪些 linux 能安装上 powershell ? 答: ◦Windows 10 IoT Core(arm32 的 cpu,本质上是 win,树莓派硬件上的 win10) ◦Raspbian Stretch(arm32 的 cpu,树莓派官方操作系统 Raspbian,基于大便,所以叫树莓便。) ◦MAC OS X 10.11 ◦Ubuntu 14.04/16.04/18.04 ◦Debian 8.x/9.x ◦CentOS 7.x/RHEL 7.x/Fedora26 及更高版本 ◦open SUSE 42 及以上 /SUSE Linux Enterprise Server 12 SP2 及以上 ◦Docker。LINUX 发行版中,安装容器 dockerd,docker 中运行 powershell。 ◦Arch Linux ( arch linux 没有版本号) ◦Linux AppImage 容器(portable application single binary) https://github.com/probonopd/AppImageKit ◦Kali Linux ◦alpine Linux |
32
maxmin 2019-02-20 16:42:12 +08:00
go -> kubernetes 还要干啥?
|
33
HangoX 2019-02-20 20:08:43 +08:00
没吧,我就懒得再弄一门语言,直接用的 groovy 搭配 grape
|