- hosts: ["web"]
tasks:
- name: creat file
shell: |
echo "{{ var01 }}" > /root/"{{ var02 }}"
become: yes
- name: print # 확인해보기!
debug:
msg: "{{ var01 }}"
become: yes
vars:
var01: 10
var02: 20
[root@ansible01 vartest]# cat vars.yml
var03: 30
var04: 40
[root@ansible01 vartest]# cat playbook
- hosts: ["web"]
tasks:
- name: creat file
shell: |
echo "{{ var01 }}" > /root/"{{ var02 }}"
become: yes
- name: print
debug:
msg: "{{ var01 }}"
become: yes
- name: load vars
include_vars: "/root/vartest/vars.yml"
- name: print
debug:
msg: "{{ var03 }}"
become: yes
vars:
var01: 10
var02: 20
변수만 저장해놓고 불러와서 사용도 가능하다
role로 만들었다면, role 디렉토리 아래 파일에 변수들을 저장해 주면 된다. 그럼 경로를 지정하지 않아도 그 친구를 찾아간다!
설정 파일들을 일일이 수정하지 않고 변수를 만들어 사용하면 편리하게 이용할 수 있다.
- hosts: ["web"]
tasks:
- name: creat file
shell: |
df -h | grep /dev/mapper/cs-root | awk -F" " '{print $5}' | cut -d'%' -f 1
register: df_result # 이값을 활용!
become: yes
- set_fact: var05={{ df_result.stdout }}
- name: print
debug:
msg: "{{ df_result }}"
- hosts: ["web"]
tasks:
- name: creat file
shell: |
df -h | grep /dev/mapper/cs-root | awk -F" " '{print $5}' | cut -d'%' -f 1
register: df_result
become: yes
- set_fact: var05={{ df_result.stdout }}
- name: print
debug:
msg: "{{ var05 }}"
- hosts: ["web"]
tasks:
- name: test
stat:
path : /root/vartest
register: root_stat
- name: print
debug:
msg: "{{ root_stat }}"
- name: print
debug:
msg: " {{ root_stat.stat.exists }}"
- hosts: ["web"]
tasks:
- name: test
stat:
path : /root/slkdfkfdj
register: root_stat
become: yes
- name: print
debug:
msg: "{{ root_stat }}"
- name: print
debug:
msg: "출력"
when: "{{ root_stat.stat.exists }}"
- hosts: ["web"]
tasks:
- name: test
stat:
path : /root/20
register: root_stat
become: yes
- name: print
debug:
msg: "{{ root_stat }}"
- name: print
debug:
msg: "출력"
when: "{{ root_stat.stat.exists }}"
yum install python3
pip3 install boto3
vi /etc/ansible/ansible.cfg 파일 수정
[inventory] 항목에서 aws_ec2 추가
[inventory]
# enable inventory plugins, default: 'host_list', 'script', 'auto', 'yaml', 'ini', 'toml'
enable_plugins = host_list, virtualbox, yaml, constructed, aws_ec2
---
plugin: aws_ec2
aws_access_key: [엑세스 키]
aws_secret_key: [시크릿 키]
keyed_groups:
- key: tags
prefix: tag
ansible-inventory -i aws_ec2.yml --graph
플러그인 해주고 태그로 만들었던 ec2 인벤토리를 가져왔다. 그룹 미지정 1대, abcd 그룹 1대, qwer 그룹 1대
확인
- hosts: ["all"]
vars:
ansible_ssh_private_key_file: "/root/ec2/inven.pem"
tasks:
- name: print
debug:
msg: "{{ ansible_facts.default_ipv4.address }}"
become: yes
ansible-playbook -i aws_ec2.yml playbook --user ubuntu
chmod 600 /root/ec2/inven.pem