애드혹

<aside> 📝 관리 호스트에 사용자 이름이 user이면서 uid가 1000번인 사용자가 존재하는지 확인하는 애드혹 명령어 실습

[user@master ping-test]$ ansible -m user -a 'name=user uid=1000 state=present' 192.168.56.101
192.168.56.101 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    },
    "append": false,
    "changed": false,
    "comment": "user",
    "group": 1000,
    "home": "/home/user",
    "move_home": false,
    "name": "user",
    "shell": "/bin/bash",
    "state": "present",
    "uid": 1000
}

</aside>

다중 플레이 구현

<aside> 📝 제어 노드에는 httpd를 설치하고 관리 호스트에는 mariadb를 설치하는 플레이북 작성 실습

</aside>

[user@master ~]$ mkdir multi-play
[user@master ~]$ cd multi-play/
[user@master multi-play]$ vim ansible.cfg
[defaults]
inventory = ./inventory
[user@master multi-play]$ vim inventory
>> inventory 파일 안에 작성

localhost # 192.168.56.100 이라고 자기 ip 주소 적어도 됌
192.168.56.101

[user@master multi_playbook]$ vim playbook.yml
>> playbook.yml 파일 안에 작성

---
- name: first play
  hosts: localhost
  become: yes
  tasks:
    - name: first task
      yum:
        name: httpd
        state: present

    - name: second task
      service:
        name: httpd
        enabled: true

- name: second play
  hosts: 192.168.56.101
  become: yes
  tasks:
    - name: first task
      yum:
        name: mariadb-server
        state: present

    - name: second task
      service:
        name: mariadb
        enabled: true
# 이 상태로는 작동 안함 -> localhost 진입할 때 비밀번호 필요하기 때문에!
[user@master multi-play]$ sudo vim /etc/sudoers.d/user
>> user 파일 안에 작성

user ALL=(ALL) NOPASSWD:ALL
# 진입할 때 비밀번호 안쓸게!

[user@master multi-play]$ ssh-copy-id [email protected]
#ssh로 통신 할때 사용할 키 복사

[user@master multi_playbook]$ ansible-playbook playbook.yml