âEdellytykset:
– >RedHat Ansible ladattu ja konfiguroitu paikalliseen jĂ€rjestelmÀÀn.
>Katso edellinen artikkelini Ansiblea vartenđđ:
~Obgelmanratkaisu:
âŠïž Aseta Web-palvelin AWS:lle ANSIBLE:n avulla!”
đč Provisionoi EC2-instanssi Ansiblen avulla.
đč Hae instanssin IP-osoite dynaamisen inventaariokonseptin avulla.
đč Konfiguroi verkkopalvelin ansiblen kautta!
- Koska Ansible on rakennettu pythonin pÀÀlle, tarvitaan Python Software Development Kit (SDK), joka mahdollistaa AWS-palveluiden konfiguroinnin. Paketti on objektisuuntautunut API nimeltÀ boto3.
pip3 install boto3 //assuming python3 is installed
âSTEP-1)
- EnsimmÀisessÀ vaiheessa provisioin ec2-instanssin tÀllÀ playbookilla.
- TÀssÀ RedHat-jÀrjestelmÀ itse kutsuu API:ta AWS:n konfigurointia varten, ja tÀmÀ toimenpide tehdÀÀn paikallisella koneella, minkÀ vuoksi hostin on tarkoitus olla localhost.
- Luo AWS-tilin tunnistautumista varten yksi IAM-kÀyttÀjÀ, jolla on vÀhemmÀn oikeuksia kuin root-tilillÀ. AWS_ACCESS_KEY ja AWS_SECRET-avain vÀlitetÀÀn eksplisiittisesti secret-nimisen Ansible-holvin kautta.yml
- hosts: localhost
vars_files:
- secret.yml
tasks:
- name: Provision os in AWS
ec2:
key_name: "keytask" //keypair to be attached to the instance
instance_type: "t2.micro"
image: "ami-0ebc1ac48dfd14136" //amazon linux
count: 1
wait: yes
vpc_subnet_id: "subnet-e7780dab"
region: "ap-south-1" //asia-pecific-south region of AWS
state: present
assign_public_ip: yes
group_id: "sg-0512d293cfb4af6e4" //security group
aws_access_key: "{{ myuser }}"
aws_secret_key: "{{ mypass }}"
register: ec2 - debug:
var: ec2.instances.public_ip
Ansible-rekisterin avulla kÀyttÀjÀ voi kaapata ulostulon ja tallentaa sen muuttujiksi ja sitÀ voidaan kÀyttÀÀ eri skenaarioissa. Muuttujat sisÀltÀvÀt tehtÀvÀn palauttaman arvon.
Rekisterimuuttuja tulostaa instanssin julkisen IP-osoitteen Ansiblen kerÀÀmistÀ faktoista.
âSTEP-2)
> Instanssi on kĂ€ynnistetty! MitĂ€ seuraavaksi?đ€đ€
PitÀisi dumpata tÀmÀn instanssin IP-osoite inventaariotiedostoon ja tehdÀ jatkotoimenpiteet!
Ajattelen, ettĂ€ kirjoitan IP:n yksinkertaisesti host-tiedostoonđ€?? NAH ! Ei manuaalisestiđ€«đ€«
JA TĂMĂ ON SIITĂ, JOSTA đ„DYNAMIC INVENTORYđ„ TULEE PELIIN:
âAnsible dynaaminen inventaario on kĂ€site, joka sisĂ€ltÀÀ skriptejĂ€, jotka toimivat ulkoisina API:ina ja vetĂ€vĂ€t tietyn palveluntarjoajan tiedot(faktat).
âKerĂ€tyt faktat dumpataan dynaamisesti isĂ€ntĂ€tiedostoon, ja lisĂ€ksi voimme luoda nĂ€istĂ€ isĂ€nnistĂ€ ryhmiĂ€ tarpeen mukaan.
âKopioi seuraavat tiedostot ohjaussolmuun dynaamisen inventaarion kĂ€yttöönottamiseksi.
https://raw.githubusercontent.com/ansible/ansible/stable-1.9/plugins/inventory/ec2.pyhttps://raw.githubusercontent.com/ansible/ansible/stable-1.9/plugins/inventory/ec2.ini
âKummankin tiedoston on oltava suoritettavassa muodossa:
chmod +x ec2.py
chmod +x ec2.ini
âTilin todennusta varten vĂ€litĂ€ myös AWS_ACCESS_KEY ja AWS_SECRET_KEY ec2.ini-tiedostossa. TĂ€mĂ€ ottaa puolestamme yhteyttĂ€ AWS:ÀÀn ja hakee ec2-instanssin tiedot.
âMuokkaa inventaariotiedostoa myös ANSIBLE.CFG-konfiguraatiotiedostoissa.
âNyt, nĂ€hdĂ€ksesi tuloksen, suorita ./ec2.py - - list
.