Molecule에 입문 해 보았습니다 (v3 차이 확인 편)

8536 단어 AnsibleMolecule

Molecule v3 출시



  • 2020/02/20 Molecule v3 릴리스
  • htps : // 기주 b. 코 m / 안시 b ぇ こむむ ty / ぇ ク ぇ / ぇ 아세 s / 타 g / 3.0.0


  • 이 기사에서 Molecule v2에 입문했지만
  • 버젼 업으로 뭔가 여러가지 바뀐 것입니다 굉장히 차분을 확인한다


  • 차이 확인



    Changelog

    중요한 변화
  • 드라이버 : Azure, EC2, DigitalOcean, GCE, HetznerCloud, Linode, LXD, OpenStack, Vagrant가 제거되었습니다
  • goss verifier가 삭제되었습니다
  • playbook.yml 이름은 더 이상 사용되지 않음 converge.yml 으로
  • 기본 verifier가 Ansible
  • Testinfra는 더 이상 기본적으로 설치되지 않습니다
  • lint 설정이 리팩터되었습니다
  • Dockerfile 템플릿이 molecule 내장

  • v2와의 차이점 확인



    작업환경




    품목
    버전


    OS
    macOS Catalina 10.15.3


    fish, version 3.1.0

    파이썬
    3.8.0

    Ansible
    2.9.5

    Molecule
    3.0.2


    molecule init로 역할의 병아리 만들기


  • 롤 배치장을 만들어 이동
  • $ mkdir roles
    $ cd roles
    
    $ molecule init role apache_vhost
    --> Initializing new role apache_vhost...
    Initialized role in /Users/answer_d/repos/molecule_test/roles/apache_vhost successfully.
    $ cd apache_vhost
    
  • 이런 종류의 디렉토리가 생성됩니다
  • apache_vhost/
    ├── .travis.yml
    ├── .yamllint
    ├── README.md
    ├── defaults
    │   └── main.yml
    ├── files
    ├── handlers
    │   └── main.yml
    ├── meta
    │   └── main.yml
    ├── molecule
    │   └── default
    │       ├── INSTALL.rst
    │       ├── converge.yml
    │       ├── molecule.yml
    │       └── verify.yml
    ├── tasks
    │   └── main.yml
    ├── templates
    ├── tests
    │   ├── inventory
    │   └── test.yml
    └── vars
        └── main.yml
    
  • v2와 다른 포인트
  • Travis CI 용 파일이 생성됩니까? !
  • 비행 ~, 시대는 CI/CD

  • lint는 기본적으로 작동하지 않습니다.
  • 사용하고 싶다면 molecule.yml에서 lint를 enable합시다

  • README.md가 생성되었습니다
  • Dockerfile.j2 없음
  • Dockerfile이 v3에서 Molecule 내장 된 것 같습니다.
  • 소스에 여기

  • 시나리오의 디렉토리에 Dockerfile.j2를 준비하면 그쪽을 보러 간다



  • molecule.yml


    ---
    dependency:
      name: galaxy
    driver:
      name: docker
    platforms:
      - name: instance
        image: docker.io/pycontribs/centos:7
        pre_build_image: true
    provisioner:
      name: ansible
    verifier:
      name: ansible
    
  • 조금 바뀌 네요 (lint가 사라지고 있다든가)

  • converge.yml


    ---
    - name: Converge
      hosts: all
      tasks:
        - name: "Include apache_vhost"
          include_role:
            name: "apache_vhost"
    
  • roles 모듈 대신 include_role을 사용하도록 설정되었습니다.

  • 테스트 실행해보기


    molecule test
    
    --> Test matrix
    
    └── default
        ├── dependency
        ├── lint
        ├── cleanup
        ├── destroy
        ├── syntax
        ├── create
        ├── prepare
        ├── converge
        ├── idempotence
        ├── side_effect
        ├── verify
        ├── cleanup
        └── destroy
    
  • lintdependency가 서로 바뀌 었으며 다른 사람은 v2와 함께
  • 사실 Changelog에 썼다


  • lint


    --> Action: 'lint'
    --> Lint is disabled.
    
  • lint는 기본 Disable로 변경, Changelog 거리

  • 이 이후의 처리는 v2에서 바뀌지 않습니다!



    드라이버가 다소 사라졌는지 어떻게하는지 문제


  • ec2 드라이버를 만들려고해도 v2를 통과하려고하면 ec2 드라이버가 없어서 화가납니다
  • $ molecule init scenario -d ec2
    Usage: molecule init scenario [OPTIONS] [SCENARIO_NAME]
    Try "molecule init scenario --help" for help.
    
    Error: Invalid value for "--driver-name" / "-d": invalid choice: ec2. (choose from delegated, docker, podman)
    
  • ec2 드라이버 설치
  • pip install molecule-ec2
    
  • 에서 다시 실행하면
  • $ molecule init scenario -d ec2
    --> Initializing new scenario default...
    Initialized scenario in /Users/answer_d/mac_os_setup_playbook/molecule/default successfully.
    

  • 덧붙여서 드라이버는 절찬 개발중 같다 (전혀 커밋 없음)
  • htps : // 기주 b. 코 m / 안시 b ぇ こんに ty / 모 ぇ ぇ c2

  • 다른 드라이버도 있으므로 설치하면 사용할 수 있다고 생각합니다
  • $ pip search molecule
    molecule (3.0.2)                           - Molecule aids in the development and testing of Ansible roles
      INSTALLED: 3.0.2 (latest)
    pytest-molecule (1.2.5)                    - PyTest Molecule Plugin :: discover and run molecule tests
    molecule-containers (0.1.dev0)             - Molecule Containers Driver :: run molecule tests on containers
    molecule-openstack (0.1)                   - Molecule OpenStack Plugin :: run molecule tests on openstack
    molecule-libvirt (0.0.2)                   - libvirt Molecule Plugin :: run molecule tests on libvirt
    molecule-digitalocean (0.1)                - digitalocean Molecule Plugin :: run molecule tests on digitalocean
    molecule-azure (0.1)                       - Azure Molecule Plugin :: run molecule tests on Azure
    molecule-vagrant (0.2)                     - Vagrant Molecule Plugin :: run molecule tests using Vagrant
    molecule-inspec (1.0)                      - Inspec Molecule Plugin :: run molecule tests with inspec as verifier
    molecule-goss (1.0)                        - Goss Molecule Plugin :: run molecule tests with Goss as verifier
    molecule-gce (0.1)                         - Molecule GCE Plugin :: run molecule tests on Google Cloud Engine
    molecule-ec2 (0.2)                         - EC2 Molecule Plugin :: run molecule tests using AWS EC2
    

    좋은 웹페이지 즐겨찾기