在 linux 平台下开发自动化部署工具,是不是 python 才是最好的选择,入手 linux 才半年多,这方面也是才疏学浅,请不吝赐教
|      1Hieast      2019-02-19 13:40:09 +08:00 我给 python 投一票 | 
|      2liuzuo      2019-02-19 13:41:49 +08:00 我在写 kotlin,其实想用 go。。。。。。 | 
|  |      3tomczhen      2019-02-19 13:45:22 +08:00 via Android 用什么语言主要还是取决于人员和项目,大多数情况下都是有限选择与项目亲和的语言、工具。 | 
|  |      4webdisk      2019-02-19 13:46:21 +08:00  2 怎么我觉得 bash shell 好用呢 | 
|  |      5SsuchingYu      2019-02-19 13:47:19 +08:00 Python, Ruby, Go,都不错。 | 
|      637Y37      2019-02-19 13:48:41 +08:00 挑自己最熟悉的,如果都没有熟悉的那么 bash,python,go 会是不错的学习选择,我们开发了一系列的运维相关工具,用的 python | 
|  |      7daijinming OP @37Y37 其实我们这边还真对 python\go,没有熟悉的,对 dotnet core 倒是熟悉,至于这个 bash 能方便的访问消息队列、数据库什么的吗? | 
|  |      8daijinming OP @tomczhen 你觉得 dotnet core 怎么样 | 
|  |      9daijinming OP @webdisk bash shell 没怎么接触过,能详细的介绍下吗,我这边需要操作文件、访问数据库、消息队列 | 
|      10alvin666      2019-02-19 13:54:32 +08:00 via Android Python 就是一个胶水语言,各种库能干各种语言能干的事,还能很容易地写出一些基本的逻辑,比较适合。 | 
|  |      11tomczhen      2019-02-19 14:03:18 +08:00 via Android @daijinming PowerShell 应该足够强大了,跨平台需求可以选择 PowerShell core,.net 亲和。由于没有.net core 的具体实践,根据之前接触到情况看,TFS 应该有解决方案,如果不选 TFS 应该可以找一下巨硬相关的最佳实践文档参考一下。 | 
|  |      12smallgoogle      2019-02-19 14:05:41 +08:00 觉得 go 好用。。。自身部署就简单。 | 
|  |      13FarAhead      2019-02-19 14:07:55 +08:00 Ruby | 
|  |      14daijinming OP @smallgoogle 这个我倒是听说过,之前就算是后起之秀。用 go 执行 shell 命令,比如调用 docker 这方面的资料是否多那 | 
|  |      15xomix      2019-02-19 14:24:13 +08:00 其实都可以,但是你 google 一下就知道 python 的资料丰富全面,所以用什么我也不用多说了。 | 
|  |      16hoyixi      2019-02-19 15:00:04 +08:00 很多自动化工具都是 Ruby 写的~不很复杂的简单任务,可能 Linux Shell 一个小脚本就搞定了,用其它脚本语言反而兜圈子~ 没有好不好,关键看适不适合。比如你是 Ruby 程序员,再学个 Python 去写部署?显然不合适~ 如果都没啥基础,Python 可能上手快,找现成的资源更容易,而且开发长期维护的、重复使用的、通用工具的话,Shell 可能有点痛苦,Ruby 代码灵活(多人合作的话,如果对该语言熟练程度不够,你看别人代码可能会蛋疼),Python 中规中矩。 个人倾向于 Python~ | 
|      17kzfile      2019-02-19 15:02:24 +08:00 我直接 docker 部署了 | 
|  |      18GiantHard      2019-02-19 15:12:36 +08:00 via Android 我觉得 fake.build 挺好,感觉就是看个人喜好跟团队喜好吧 | 
|  |      19daijinming OP @hoyixi 初学者对于 python 有中奇怪的感觉 ,一般 linux 都预装 python2 ,但是书本都教授 python3,自动化工具采用那个版本比较合适那?另外可能是开发.net 给的想法,python 做自动化工具是开启一个 web 服务那,还是一个控制台应用? | 
|  |      20tL28Qt7jS56Yy8F9      2019-02-19 16:08:16 +08:00 @daijinming #19 从 2018 年开始,大部分 Linux 发行版预装 Python2 和 Python3。从长远角度来看,推荐使用 python3。 原因请戳这里: https://pythonclock.org/ :-) | 
|  |      21webdisk      2019-02-19 19:49:23 +08:00  1 | 
|  |      22mritd      2019-02-19 22:05:38 +08:00 via iPhone @daijinming #14 调用 docker 你就不要用命令了,直接用 docker 的 sdk 啊,docker 就是 go 写的 | 
|      23j0ck1e      2019-02-19 22:22:33 +08:00 linux 自动化工具一般用来解决什么问题啊? | 
|      24iwtbauh      2019-02-20 00:04:21 +08:00 via Android 相对于 bash shell,我更倾向于使用 POSIX shell,因为 POSIX shell 是可移植的。 | 
|      25iwtbauh      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 怎么防止注入看我前两天刚回复的一个帖子 | 
|  |      26zbl430      2019-02-20 09:18:21 +08:00 go  编译   xxxx 运行 $ ./xxxx | 
|  |      27EscYezi      2019-02-20 09:38:52 +08:00 via iPhone 其实 PHP 也是可以的……毕竟都是脚本语言 | 
|      28julyclyde      2019-02-20 10:56:56 +08:00 这类东西还需要去开发,基本上你已经错了 | 
|      29Hasal      2019-02-20 11:49:04 +08:00 要看负责部署工具开发的团队技术水平,通常来讲部署与运维相关,也就是看运维团队技术水平。 前几年 python 选择的比较多,大部分运维都会 Python,对工具上手开发、维护都比较容易。 以我所在公司为例,最开始是 python,后来转到 Go,用了一阵发现 Go 招人没那么容易(其实是钱没给到位),目前已经换成 Java,招人容易多了。 | 
|      30yuhr123      2019-02-20 11:54:26 +08:00 简单的就 bash | 
|      31ps1aniuge      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 | 
|  |      32maxmin      2019-02-20 16:42:12 +08:00 go  -> kubernetes  还要干啥? | 
|      33HangoX      2019-02-20 20:08:43 +08:00 没吧,我就懒得再弄一门语言,直接用的 groovy 搭配 grape |