Link-U+fabistrano 소개

10704 단어 Python

안부를 묻다


저는 Link-U 기술개발부의 부장 토옥입니다.
주로 서버 측 API 및 관리 화면 개발을 담당합니다.
링크-U에서는 올해부터 기술개발부 구성원들이 즉흥 달력을 진행한다.
이번에 하기로 한 이유는 한 명씩 기사를 쓸 수 있는 멤버들이 다 모였기 때문이에요.
지금까지 별다른 성과를 내지 못했기 때문에 우리 회사를 알리는 계기가 됐으면 좋겠다고 생각한다.
기술개발부 표시
  • 클라이언트 그룹(스마트폰 로컬 응용 프로그램 및 웹 서비스 데스크)
  • 인프라 그룹(서버 장비, 네트워크 등)
  • 서버 그룹(API, 관리 화면 등)
  • 세 부분으로 나뉘어 이번에 참가한 멤버들도 각 조에 부탁했다.
    나는 모두가 무엇을 쓸지 기대하고 있다.
    우선 선제공격으로 내제 도구를 소개하겠습니다.

    fabistrano 소개


    Fabric+Capistrano에서 이름을 따 이러한 기능을 기반으로 개발한 디자인 도구다.
    파이썬을 선택한 이유가 뭘까요?
  • Ubuntu에서 표준 설치
  • ansible을 사용하기 위해 설치
  • 플러그인 쓰기 용이
  • 간단한 설치
  • PHP의 서비스가 많기 때문에 디버깅을 할 때 차이점과 지점을 확인하고 싶습니다
  • 특히 마지막이 중요해.
    현재 deprovi도 자동화되고 있지만 많은 사람들이 함께 개발하면 누가 어떤 지점을 설계했는지, 어디로 디자인했는지 모르겠다.다음에 다시 자세히 쓰시오.

    설치 방법


    fabistrano는 pip로 설치할 수 있습니다 (privete 창고이기 때문에 관계자가 아니면 다운로드할 수 없습니다)
    $ pip install git+ssh://[email protected]/link-u/fabistrano.git
    

    라이브러리 종속


    colorful


    https://github.com/timofurrer/colorful
    CLI 디스플레이를 보다 쉽게 표시하기 위해 사용됩니다.

    PyYAML


    https://github.com/yaml/pyyaml
    각 서버에 대한 연결 정보는 YAML 형식으로 설정됩니다.

    click


    https://click.palletsprojects.com/en/7.x/
    명령 옵션의 관리와 하위 명령화는 매우 편리하기 때문에 사용하고 있다.

    기능 소개


    프로그램 목표가 어떤 상태인지 질문


    예를 들어 dev 환경을 잠시 다른 지점으로 바꾸고 문제를 해결하기 위해 한순간에 뭔가를 수정하고 싶은 경우가 있다.
    PHP는 스크립트 언어로 설정된 파일을 따라 이동합니다.그래서 서버에 로그인해서 직접 편집하는 일도 있다고 생각합니다.
    다중 작업과 다양한 환경 의존 문제가 발생하는 개발 현장에서fabistrano는 사고를 극력 줄이는 기능을 가지고 있다.

    환경 분류에 따라 개발 목표의config 기재


    IP와 포트가 잘못되면 다른 서비스에 영향을 미칠 수 있습니다.프로젝트에서 공유할 수 있는 형식이기 때문에 디버깅할 때alias만 지정하면 됩니다.

    git status 확인 기능


    git의 위원이 누락되거나 push가 잊어버릴 때 경고를 보냅니다.

    branch 확인 기능


    디버깅된 원격 호스트의 branch와 디버깅을 진행할 branch가 동시에 경고를 보내지 않습니다.

    차등 확인 기능


    삭제된 파일 또는 수정된 파일의 목록을 표시합니다.

    차등 상세 확인 기능


    실제 변경 내용을 볼 수 있습니다.

    설계 시간과 사람 기록(git config 정보)


    잘 모르는 차이를 발견했을 때 바로 누구에게 물어봐야 할지 알았다.

    플러그인 확장


    화면 관리 등은 웹 패키지로 JS를 구축해야 한다.
    너는 그것을 시범 명령에 포함시킬 수 있다.
    이렇게 하면 반드시 필요한 구축 작업을 강제할 수 있다.

    프로그램 명령 덮어쓰기 예


    deploy.py
    # -*- coding: utf-8 -*-
    import click
    import invoke
    
    import fabistrano
    from fabistrano.commands.deploy import deploy as orig_deploy
    
    
    @click.command(help=u'APPデプロイを行う')
    @fabistrano.deploy_options
    @click.option('--skip-build', help=u'yarn build をスキップします', is_flag=True, default=False)
    @click.option('--skip-composer', help=u'composer installをスキップします', is_flag=True, default=False)
    @click.pass_context
    def deploy(ctx, config, ignore_git, ignore_diff, force, apply_force, skip_composer, skip_build):
        """
        通常のデプロイ操作に加えてcomposer install, buildを行う
        """
    
        if not skip_build:
            c = invoke.Context()
            with c.cd(config.env.local_root_dir + '/front-end'):
                c.run('yarn build', pty=True)
    
        # --no-devオプションを付与しない環境名のリスト
        dev_envs = []
    
        if not skip_composer:
            c = invoke.Context()
            if config.env.env_name in dev_envs:
                with c.cd(config.env.local_root_dir):
                    c.run('COMPOSER_VENDOR_DIR=vendor ./composer.phar install', pty=True)
            else:
                with c.cd(config.env.local_root_dir):
                    c.run('COMPOSER_VENDOR_DIR=vendor-no-dev ./composer.phar install --no-dev', pty=True)
    
        kwargs = {
            'config': config,
            'ignore_git': ignore_git,
            'ignore_diff': ignore_diff,
            'force': force,
            'apply_force': apply_force,
        }
        ctx.invoke(orig_deploy, **kwargs)
    
    
    지정한 디렉터리에 파일 [コマンド名].py 을 설정하면 자동으로 명령화됩니다.
    기존 명령을 덮어쓰거나 새 명령을 간단하게 추가할 수 있습니다.
    그러나 이 기능은 그다지 사용되지 않고 개발자로서도 사용되지 않았다

    총결산


    대체로 파비스트라노를 소개했다.
    언젠가 현지화에 대응할 수 있다면 소스 파일을 만들었으면 좋겠다.
    링크-U에서는 서비스는 물론 내부 도구를 제작할 수 있는 사람을 모집한다.
    관심 있는 사람은 본사의 채용 페이지에서 초빙하세요!
    https://www.link-u.co.jp/recruit/

    좋은 웹페이지 즐겨찾기