-
[Ansible] Ansible을 이용해서 비밀번호 일괄 변경하기운영체제/Linux 2023. 8. 26. 23:56
우선 ec2를 두 대 띄우자
- Ubuntu server -> target server
- linux server -> ansible server
1. target server : ubuntu 들어가서 사용자 생성하기
sudo adduser newuser su newuser
2. ansible server : linux 서버 들어가서 ansible 설치하기
sudo amazon-linux-extras install ansible2 ansible --version
3. host 등록하기
대상 서버인 ubuntu 서버의 ip주소를 등록해준다
key.pem은 인스턴스 생성할때 지정한 키파일이라서 따로 해당 경로에 키값을 저장해줘야한다.
vi /etc/ansible/hosts [clients] 43.201.51.116 ansible_user=ubuntu ansible_ssh_private_key_file=/etc/ansible/key.pem
4. ping test
ansible all -m ping
입력하면, 접근권한이 없기때문에 테스트가 안됨
그래서 ssh키를 생성해서 대상서버의 authorized_key에 똑같은 키값을 등록해줘야함
cd ~/.ssh로 이동하고 ssh-keygen -t rsa 입력
ls ~/.ssh authorized_keys id_rsa id_rsa.pub
여기서 이 id_rsa.pub-> public key를 대상 서버로 전송한다.
ssh-copy-id -i ~/.ssh/id_rsa.pub newuser@192.168.56.101
처음에 하면 publickey denied가 될 것임
그래서 대상서버의 ssh option을 변경해서 password 입력할 수 있게 해준
sudo vi /etc/ssh/sshd_config PasswordAuthentication yes sudo service ssh restart
~/.ssh/ 경로에 'authorized_keys' 파일이 생성된 것을 확인할 수 있다.
ssh 연결이 잘 되는걸 확인할 수 있음
그리고 ping테스트도 잘 된다.
5. playbook으로 비밀번호 일괄 변경하기
- yaml 파일 생성해서 playbook 을 작성하자 : hosts에 위에서 지정해줬던 host그룹이름으로 지정하고, sudo 권한으로 바꾸겠다고 지정했다.
- name: update user password hosts: clients become: yes become_method: sudo tasks: - user: name: 대상서버유저이름 update_password: always password: "{{ newpassword|password_hash('sha512') }}" ~ ~ ~
- 명령어 입력
ansible-playbook updatepasswd.yml -i hosts --extra-vars newpassword=바꿀비밀번호
대상서버 접속하면 바꾼 비밀번호로 로그인하면 된다.