【초보자용】GCE 인스턴스에서의 Ansible의 도입과 실행

소개



이전부터 신경이 쓰였던 구성 관리 툴의 일종인 Ansible을 Google Cloud Platform의 VM 인스턴스상에서 동작시켜 보았다.
자신과 비슷한 "Ansible을 GCE에 도입하고 시도하고 싶다"라는 사람을 위해 자신이 시도한 것을 남겨두고 싶습니다.

환경 준비



  • Ansible을 설치할 VM 인스턴스 준비

  • GCP 프로젝트 방문
  • "인스턴스 만들기"선택
  • 임의의 인스턴스 작성 (인스턴스 작성 예는 다음과 같음)
  • 인스턴스 이름: ansible-host
  • 지역: asia-northeast1
  • 구역: asia-northeast1-b
  • 머신 타입 : f1-micro (테스트용이므로 요금을 억제한다)
  • 부트 디스크(OS): CentOS 7


  • 4. 작업용 디렉토리 만들기
      $ mkdir gcp_ansible
    

  • Ansible 설치
    $ sudo yum install -y epel-release
    $ sudo yum install -y ansible
    $ ansible --version
    ansible 2.7.7
    

  • Ansible을 실행하는 데 필요한 구성 요소 설치 (apache-libcloud를 설치하기 위해 먼저 pip를 설치)
    $ sudo yum install -y python-pip
    $ sudo pip install --upgrade pip
    $ sudo pip install apache-libcloud
    

  • 서비스 계정 Credential 파일 만들기 및 배포
  • GCP 프로젝트 -> "IAM 및 관리"-> 서비스 계정 -> 이번에 사용할 서비스 계정 선택 -> "편집"을 선택 -> "키 만들기"-> JSON을 선택하고 "만들기"푸시 (그러면 자격 증명 파일이 다운로드됩니다)
  • 1.에서 얻은 credential file을 "my_account.json"으로 이름을 바꾸고 VM 인스턴스의 gcp_ansible 아래에 배치


  • Ansible Playbook 만들기 (아래의 yml 파일을 VM 인스턴스의 gcp_ansible 아래에 배치. [YOUR ...] 부분은 적절하게 다시 작성.)
    ※덧붙여서 Ansible 문서 에서 yml로 설정할 수 있는 파라미터를 확인할 수 있다

    gce.yml
    - name: Create an instance
      hosts: localhost
      gather_facts: no
      connection: local
      vars:
          project_id: [YOUR_PROJECT_ID]
          service_account_file: ./my_account.json
          service_account_email: [YOUR_SERVICE_ACCOUNT_EMAIL]
          zone: "asia-northeast1-c"
    
      tasks:
        - name: Create an instance
          gce:
            instance_names: "ansible-test"
            machine_type: "f1-micro"
            image: "ubuntu-1604"
            zone: "{{ zone }}"
            disk_size: 64
            service_account_email: "{{service_account_email}}"
            credentials_file: "{{service_account_file}}"
            project_id: "{{ project_id }}"
    


  • Ansible Playbook 실행
    $ ansible-playbook gce.yml 
    ︙
    localhost                  : ok=1    changed=1    unreachable=0    failed=0  
    
  • Ansible로 생성된 GCE 인스턴스 확인
    GCP 프로젝트에 액세스하면 'ansible-test'인스턴스가 있는지 확인했습니다.

  • 참고로 한 사이트



    htps : // / cs. 안시 bぇ. 이 m / 안시 b ぇ / ㅁ st / s 세나오 _ 구이로 s / 구이로 _ g 세. HTML
    htps : // / cs. 안시 bぇ. 이 m/안시 bぇ/ぁ해서 st/모즈 s/g세_모즈. HTML

    좋은 웹페이지 즐겨찾기