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 |