ansible로 ubuntu user 생성

etc 2020. 2. 19. 15:45

1. ansible 설치 -> 사전에 python 설치 확인

# 방법 1 - from ansible documentation 
$ sudo apt update
$ sudo apt install software-properties-common
$ sudo apt-add-repository --yes --update ppa:ansible/ansible
$ sudo apt install ansible


# 방법 2 - from ansible documentation
$ pip install ansible

 

2. 호스트 등록

$ vi /etc/ansible/hosts

# 아래 양식으로 등록(아래 이미지 참조)

[web]
호스트IP 1
호스트IP 2

3. 연결 테스트

# 연결 테스트
$ ansible all -m ping
$ ansible worker1 -m ping

 

4. ssh key 생성 및 복사

# SSH key 생성
$ ssh-keygen -b 4096 -f ~/.ssh/id_rsa -N ""

# 인증키에 등록
$ cat ~/.ssh/id_rsa.pub | sudo tee -a ~/.ssh/authorized_keys

# 인증키를 각 노드에 추가
$ ssh-copy-id -i ~/.ssh/id_rsa.pub <user>@<node_ip_address>
예)
$ ssh-copy-id -i ~/.ssh/id_rsa.pub root@proxy
$ ssh-copy-id -i ~/.ssh/id_rsa.pub root@management
$ ssh-copy-id -i ~/.ssh/id_rsa.pub root@worker1
$ ssh-copy-id -i ~/.ssh/id_rsa.pub root@worker2

ssh-copy-id -i ~/.ssh/id_rsa.pub root@169.56.170.168

# 모든 node에서 ssh 재시작
$ sudo systemctl restart sshd

 

5. ssh key 복사후 ping 테스트 결과 (아래 이미지)

 

 

6. yaml 작성

# create-user.yaml

- name: 사용자 추가
  hosts: all
  become: true
  tasks:
    - name: 사용자 이름 생성
      user:
        name: "{{ item }}"
        shell: /bin/bash
      with_items: "{{ USER_NAME }}"
    - name: 패스워드 변경
      user:
        name: "{{ item }}"
        password: "{{ PASSWORD | password_hash('sha512') }}"
      with_items: "{{ USER_NAME }}"
    - name: sudoers.d 추가
      copy:
        content: |
          %{{item}} ALL=(ALL) NOPASSWD: ALL
        dest: "/etc/sudoers.d/{{item}}"
        owner: root
        group: root
        mode: 0440
        validate: "/usr/sbin/visudo -c -f '%s'"
      with_items: "{{ USER_NAME }}"
  vars:
    USER_NAME:
    - "user01"
    - "user02"
    - "user03"
    - "user04"
    - "user05"
    - "user06"
    - "user07"
    - "user08"
    - "user09"
    - "user10"
    - "user11"
    - "user12"
    - "user13"
    - "user14"
    - "user15"
    - "user16"
    - "user17"
    - "user18"
    - "user19"
    - "user20"
    - "user21"
    - "user22"
    - "user23"
    - "user24"
    - "user25"
    - "user26"
    - "user27"
    - "user28"
    - "user29"
    - "user30"


7. playbook 실행

# 명령어 실행
$ ansible-playbook create-user.yaml --extra-vars "PASSWORD=your_password"

# 로그인시 프롬프트가 $ 이고 history나 화살표로 이전 명령어 보이기가 실행 안되면
# bin/sh로 실행되는것 -->  vi /etc/passwd 열어서 sh를 -> bash 로 변경하면 됨

8. ICP cluster 접근을 위한 추가 작업

  • root계정으로 cloudctl, kubectl 설치하고, ICP 화면에서 클라이언트 구성 복사해서 실행하면 정상 연결됨
  •  
  • cloudctl login https://icp-cluster:8443
  • 로그인
  • kubectl 명령 실행 가능함....
  •  
  • cloudctl login -a https://icp-cluster:8443 --skip-ssl-validation

 

'etc' 카테고리의 다른 글

ssh key로 서버 접속  (0) 2020.05.18
bash Prompt 설정  (0) 2020.05.18
ubuntu user 생성  (0) 2020.04.20
git command  (0) 2020.03.16
Posted by jerymy
,