• 请不要在回答技术问题时复制粘贴 AI 生成的内容
daijinming
V2EX  ›  程序员

在 Linux 平台下开发自动化部署工具,是不是 Python 才是最好的选择

  •  
  •   daijinming · Feb 19, 2019 · 5652 views
    This topic created in 2664 days ago, the information mentioned may be changed or developed.

    在 linux 平台下开发自动化部署工具,是不是 python 才是最好的选择,入手 linux 才半年多,这方面也是才疏学浅,请不吝赐教

    33 replies    2019-02-20 20:08:43 +08:00
    Hieast
        1
    Hieast  
       Feb 19, 2019
    我给 python 投一票
    liuzuo
        2
    liuzuo  
       Feb 19, 2019
    我在写 kotlin,其实想用 go。。。。。。
    tomczhen
        3
    tomczhen  
       Feb 19, 2019 via Android
    用什么语言主要还是取决于人员和项目,大多数情况下都是有限选择与项目亲和的语言、工具。
    webdisk
        4
    webdisk  
       Feb 19, 2019   ❤️ 2
    怎么我觉得 bash shell 好用呢
    SsuchingYu
        5
    SsuchingYu  
       Feb 19, 2019
    Python, Ruby, Go,都不错。
    37Y37
        6
    37Y37  
       Feb 19, 2019
    挑自己最熟悉的,如果都没有熟悉的那么 bash,python,go 会是不错的学习选择,我们开发了一系列的运维相关工具,用的 python
    daijinming
        7
    daijinming  
    OP
       Feb 19, 2019
    @37Y37 其实我们这边还真对 python\go,没有熟悉的,对 dotnet core 倒是熟悉,至于这个 bash 能方便的访问消息队列、数据库什么的吗?
    daijinming
        8
    daijinming  
    OP
       Feb 19, 2019
    @tomczhen 你觉得 dotnet core 怎么样
    daijinming
        9
    daijinming  
    OP
       Feb 19, 2019
    @webdisk bash shell 没怎么接触过,能详细的介绍下吗,我这边需要操作文件、访问数据库、消息队列
    alvin666
        10
    alvin666  
       Feb 19, 2019 via Android
    Python 就是一个胶水语言,各种库能干各种语言能干的事,还能很容易地写出一些基本的逻辑,比较适合。
    tomczhen
        11
    tomczhen  
       Feb 19, 2019 via Android
    @daijinming PowerShell 应该足够强大了,跨平台需求可以选择 PowerShell core,.net 亲和。由于没有.net core 的具体实践,根据之前接触到情况看,TFS 应该有解决方案,如果不选 TFS 应该可以找一下巨硬相关的最佳实践文档参考一下。
    smallgoogle
        12
    smallgoogle  
       Feb 19, 2019
    觉得 go 好用。。。自身部署就简单。
    FarAhead
        13
    FarAhead  
       Feb 19, 2019
    Ruby
    daijinming
        14
    daijinming  
    OP
       Feb 19, 2019
    @smallgoogle 这个我倒是听说过,之前就算是后起之秀。用 go 执行 shell 命令,比如调用 docker 这方面的资料是否多那
    xomix
        15
    xomix  
       Feb 19, 2019
    其实都可以,但是你 google 一下就知道 python 的资料丰富全面,所以用什么我也不用多说了。
    hoyixi
        16
    hoyixi  
       Feb 19, 2019
    很多自动化工具都是 Ruby 写的~不很复杂的简单任务,可能 Linux Shell 一个小脚本就搞定了,用其它脚本语言反而兜圈子~

    没有好不好,关键看适不适合。比如你是 Ruby 程序员,再学个 Python 去写部署?显然不合适~

    如果都没啥基础,Python 可能上手快,找现成的资源更容易,而且开发长期维护的、重复使用的、通用工具的话,Shell 可能有点痛苦,Ruby 代码灵活(多人合作的话,如果对该语言熟练程度不够,你看别人代码可能会蛋疼),Python 中规中矩。 个人倾向于 Python~
    penisulaS
        17
    penisulaS  
       Feb 19, 2019
    我直接 docker 部署了
    GiantHard
        18
    GiantHard  
       Feb 19, 2019 via Android
    我觉得 fake.build 挺好,感觉就是看个人喜好跟团队喜好吧
    daijinming
        19
    daijinming  
    OP
       Feb 19, 2019
    @hoyixi 初学者对于 python 有中奇怪的感觉 ,一般 linux 都预装 python2 ,但是书本都教授 python3,自动化工具采用那个版本比较合适那?另外可能是开发.net 给的想法,python 做自动化工具是开启一个 web 服务那,还是一个控制台应用?
    tL28Qt7jS56Yy8F9
        20
    tL28Qt7jS56Yy8F9  
       Feb 19, 2019
    @daijinming #19
    从 2018 年开始,大部分 Linux 发行版预装 Python2 和 Python3。从长远角度来看,推荐使用 python3。
    原因请戳这里: https://pythonclock.org/
    :-)
    webdisk
        21
    webdisk  
       Feb 19, 2019   ❤️ 1
    mritd
        22
    mritd  
       Feb 19, 2019 via iPhone
    @daijinming #14 调用 docker 你就不要用命令了,直接用 docker 的 sdk 啊,docker 就是 go 写的
    j0ck1e
        23
    j0ck1e  
       Feb 19, 2019
    linux 自动化工具一般用来解决什么问题啊?
    iwtbauh
        24
    iwtbauh  
       Feb 20, 2019 via Android
    相对于 bash shell,我更倾向于使用 POSIX shell,因为 POSIX shell 是可移植的。
    iwtbauh
        25
    iwtbauh  
       Feb 20, 2019 via Android
    @daijinming #7

    把访问消息队列的接口封装成的 C/C++/...程序,并从 shell 调用

    访问数据库可以直接调用数据库客户端,以 mariadb 为例

    mysql -u$USER -p$PASS $DATABASE <<EOF
    把 sql 语句放到这里
    EOF

    怎么防止注入看我前两天刚回复的一个帖子
    zbl430
        26
    zbl430  
       Feb 20, 2019
    go 编译 xxxx
    运行 $ ./xxxx
    EscYezi
        27
    EscYezi  
       Feb 20, 2019 via iPhone
    其实 PHP 也是可以的……毕竟都是脚本语言
    julyclyde
        28
    julyclyde  
       Feb 20, 2019
    这类东西还需要去开发,基本上你已经错了
    Hasal
        29
    Hasal  
       Feb 20, 2019
    要看负责部署工具开发的团队技术水平,通常来讲部署与运维相关,也就是看运维团队技术水平。
    前几年 python 选择的比较多,大部分运维都会 Python,对工具上手开发、维护都比较容易。
    以我所在公司为例,最开始是 python,后来转到 Go,用了一阵发现 Go 招人没那么容易(其实是钱没给到位),目前已经换成 Java,招人容易多了。
    yuhr123
        30
    yuhr123  
       Feb 20, 2019
    简单的就 bash
    ps1aniuge
        31
    ps1aniuge  
       Feb 20, 2019   ❤️ 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
    maxmin
        32
    maxmin  
       Feb 20, 2019
    go -> kubernetes 还要干啥?
    HangoX
        33
    HangoX  
       Feb 20, 2019
    没吧,我就懒得再弄一门语言,直接用的 groovy 搭配 grape
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2870 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 87ms · UTC 05:06 · PVG 13:06 · LAX 22:06 · JFK 01:06
    ♥ Do have faith in what you're doing.