ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Ansible 101] 사용자 계정 생성하기
    IT/Ansible 2024. 2. 4. 02:09
    728x90

     

    안녕하세요, 오늘은 앤서블을 활용해서 사용자 계정을 생성하는 방법을 알아보겠습니다.

    플레이북 구성 예시는 위와 같습니다.

     

    위의 구성을 통해서 진행해 볼 내용은 사용자 계정 패스워드 Vault를 이용해 암호화 처리할 예정입니다.

     

    먼저, 

     

    1) 플레이북 생성

     

    - 프로젝트 디렉터리 생성 및 ansible.cfg, inventory 파일을 작성합니다.

     

    ~/my-ansible/chapter_09.1/

     

    #
    mkdir ~/my-ansible/chapter_09.1
    cd ~/my-ansible/chapter_09.1
    
    # ansible.cfg, inventory 파일 작성
    cat <<EOT > ansible.cfg
    [defaults]
    inventory = ./inventory
    remote_user = ubuntu
    ask_pass = false
    
    [privilege_escalation]
    become = true
    become_method = sudo
    become_user = root
    become_ask_pass = false
    EOT
    
    cat <<EOT> inventory
    tnode1
    tnode2
    tnode3
    EOT

     

    2) 사용자 계정 정보가 정의된 변수 파일을 생성

     

    ~/my-ansible/chapter_09.1/vars/secret.yml

    # vault 암호는 편하게 입력
    ansible-vault create vars/secret.yml
    New Vault password: qwe123
    Confirm New Vault password: qwe123
    
    ## 에디터 창으로 전환 : (아래 내용 복붙) user_info 변수에 userid와 userpw가 같이 있는 사전형 변수를 정의
    ---
    
    user_info:
      - userid: "ansible"
        userpw: "ansiblePw1"
      - userid: "stack"
        userpw: "stackPw1"
    ~
    ~
    :wq
    
    # 변수 파일 확인
    ls -l vars/secret.yml
    cat vars/secret.yml

     

    vault 암호를 입력. 후, 변수를 다음과 같이 정의해 줍니다.

     

    이후 위의 내용과 같이 변수 파일을 확인합니다.

     

    3) 사용자 계정을 생성하는 플레이북을 작성

    모든 호스트에 동일하게 생성하며 vault로 작성된 변수 파일을 읽어 사용함

    ~/my-ansible/chapter_09.1/create_user.yml

    ---
    
    - hosts: all
    
      # vault로 사용자 계정 관련 변수가 정의된 파일을 임포트하여 사용
      vars_files:
        - vars/secret.yml
    
      tasks:
      # loop 문을 사용하여 user_info의 userid와 userpw 사용
      - name: Create user
        ansible.builtin.user:
          name: "{{ item.userid }}"
          password: "{{ item.userpw | password_hash('sha512', 'mysecret') }}"
          state: present
          shell: /bin/bash
        loop: "{{ user_info }}"

     

     

    4) 플레이북 실행

     

    - 문법 체크

     

    - 문법 체크시 --ask-vault-pass를 통해서 진행하면 확인이 가능

     

    마찬가지로, 진행시 --ask-vault-pass를 통해서 진행하면 다음과 같이 확인이 가능합니다.

     

    계정이 생성된 이력을 tail 명령어를 통해서 확인합니다.

    728x90
    반응형
Designed by Tistory.