ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [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=바꿀비밀번호

    대상서버 접속하면 바꾼 비밀번호로 로그인하면 된다.

     

Designed by Tistory.