ansible roles integration with jenkins devops
Детаљни увид у одговорне улоге, интеграцију са Јенкинс-ом и Ансибле С3 и ЕЦ2 модуле:
У другом делу од серија о туторијалима за Ансибле , научили смо како се Анс1ибле плаибоокс користе за извршавање вишеструких задатака и довођење свих циљних машина или сервера у одређено жељено стање.
Препоручено читање => Експоненцијалне ДевОпс серије обуке
Ансибле плаибоокс су првенствено ИАМЛ датотеке које садрже више задатака у једној великој датотеци која није модуларна и може се поново употребити. Али ако требате да разбијете целу своју конфигурацију и будете модуларнији и вишекратно употребљиви, онда ће улоге Ансибле пуно помоћи.
У овом одговорном водичу , осврнућемо се на улоге Ансибле, Интегриши Ансибле са Јенкинс-ом за континуирану испоруку са становишта ДевОпс-а и најважније на модуле Ансибле С3 и ЕЦ2 за управљање АВС ЕЦ2 инстанцама (Стварање и укидање ЕЦ2 инстанци).
Шта ћете научити:
- Одговорљиве улоге
- Јенкинсова интеграција са Ансибле
- Управљајте објектима АВС С3 помоћу програма Ансибле
- Обезбедите АВС ЕЦ2 инстанцу користећи Ансибле
- Завршавање инстанци ЕЦ2
- Резиме
- Препоручено читање
Одговорљиве улоге
Помоћу одговорних улога можете груписати своје променљиве, задатке, руковаоце итд., Што повећава поновну употребу и сасвим сигурно смањује синтаксне грешке. Помаже у уклањању нереда из читавог кода.
Одговорне улоге сличне су модулима у Луткама и куварима у Кувару.
Да бисте креирали улоге, користите ансибле-галаксија наредба која има све предлошке за његово креирање.
Пример сценарија
Већи део свог живота сам специјалиста за ДевОпс и радим само у ЦИ и ЦД-у.
Тако би, на пример, у континуираној испоруци, где примењујем нову верзију своје Ј2ЕЕ апликације (ВАР датотека) за томцат моје кораке, били следећи:
- Зауставите апликацију
- Деинсталирајте апликацију
- Примените нову верзију апликације
- Покрените апликацију
Дакле, стварао бих улогу са најмање 4 задатка и једном главном датотеком која је зове. На овај начин свој код чиним модуларнијим и поновним за употребу. Дакле, назовимо ову улогу као томцат и створити га.
$ cd /etc/ansible/roles $ sudo ansible-galaxy init tomcat --offline
Једном када је улога креирана, можете видети структуру директоријума коју је креирала.
Главне компоненте које ћемо користити у овом одељку укључују:
- задаци / главни.имл - Ово је полазна тачка за задатке створене за улогу. Датотеку маин.имл можете користити за упућивање на друге датотеке задатака.
- чији - Ово служи за дефинисање свих коришћених променљивих.
- мета - Ово служи за дефинисање података о себи или аутору.
Корак 1: Направите главну листу свих задатака
Уредите задаци / главни.имл датотеку и додајте доњи код. Према горе поменутом примеру, дефинишемо 4 различита задатка. У већини случајева, апликација за примену такође ће покренути апликацију, па последња од почетне апликације можда неће бити потребна.
--- # tasks file for tomcat - import_tasks: stop_app.yml - import_tasks: uninstall_app.yml - import_tasks: deploy_app.yml - import_tasks: start_app.yml
Корак 2: Креирајте све 4 датотеке према сценарију
У доле наведеним задацима акција: ец2_фацтс користи се за добијање чињеница из удаљених инстанци ЕЦ2 и њихово позивање у играма / задацима
задаци / датотека стоп_апп.имл
--- - name: Gather EC2 instance metadata action: ec2_facts - name: Stop application on {{ansible_hostname}} command: wget 'http://{{tomcat_user}}:{{tomcat_pwd}}@{{ansible_ec2_public_ipv4}}:8080/manager/text/ stop ?path=/HelloWorld-Maven' -O - -q
задаци / унинсталл_апп.имл
--- - name: Gather EC2 instance metadata action: ec2_facts - name: Undeploy application on {{ansible_hostname}} command: wget 'http://{{tomcat_user}}:{{tomcat_pwd}}@{{ansible_ec2_public_ipv4}}:8080/manager/text/undeploy?path=/HelloWorld-Maven' -O - -q
задаци / деплои_апп.имл
--- - name: Deploy the new WAR file to target servers copy: src=/var/lib/jenkins/workspace/Demo-Maven-Project/target/HelloWorld-Maven.war dest=/home/ansible/tomcat/webapps
У коду за примену ако се ЈЕНКИНС користи за изградњу ВАР датотеке, тада морате да наведете изворни директоријум ВАР датотеке у копија модул, а одредиште је циљни сервер вебаппс локација томцат-а.
задатак / старт_апп.имл
--- - name: Gather EC2 instance metadata action: ec2_facts - name: Start application on {{ansible_hostname}} command: wget 'http://{{tomcat_user}}:{{tomcat_pwd}}@{{ansible_ec2_public_ipv4}}:8080/manager/text/start?path=/HelloWorld-Maven' -O - -q
Корак 3: Дефинисање променљивих
Уредите варс / маин.имл датотеку и додајте код као што је приказано доле.
--- # vars file for tomcat tomcat_user: tomcat tomcat_pwd: tomcat
Корак 4: Дефинишите информације у мета директоријуму
Уредите датотеку мета / маин.имл и додајте своје податке попут аутора, описа и компаније.
како послати ддос напад
galaxy_info: author: V Niranjan description: Devops specialist company:
Корак 5: Направите главну датотеку сите.имл
На крају, креирајте главну датотеку сите.имл да бисте позвали створену улогу, што ће заузврат помоћи у примени апликације на сервере или листу хостова према датотеци инвентара. Направите датотеку као /етц/ансибле/сите.имл
--- - hosts: webservers become: true roles: - apache
Корак 6: Покрените датотеку плаибоок датотеке сите.имл
$ ансибле-плаибоок сите.имл
Покрените Томцат УРЛ да бисте видели да ли је апликација постављена и покренута.
ХТТП: //: портно / манагер
Јенкинсова интеграција са Ансибле
У овом одељку ћемо видети како Јенкинс може да се интегрише са Ансибле. ВАР датотека изграђена помоћу процеса израде користиће се за постављање у Томцат на циљном рачунару помоћу програма Ансибле. Позваћемо улогу Ансибле створену у претходном одељку у Јенкинс-у помоћу додатка Ансибле.
Дакле, након завршетка израде, постављање ВАР датотеке ће се аутоматски покренути помоћу Ансибле-а.
Држим ово једноставно и нисам конфигурисао Сонар или Артифацтори или Јунит током континуираних интеграционих активности које се такође могу обавити.
Корак 1: Креирајте Јенкинсов посао и конфигуришите СЦМ репо помоћу кода у ГитХуб-у
Корак 2: Конфигуришите изградњу
Корак 3: Креирајте директоријум улога у Јенкинсовом радном простору
Корак 4: Креирајте улогу томцат на локацији Јенкинс радног простора помоћу наредбе приказане доле
$ судо ансибле-галаки инит томцат –оффлине
Следите поступак као у претходном одељку да бисте креирали све датотеке за задаци, варс, мета и главна веб локација.имл.
како отворити мкв датотеку на Виндовсима
Главни сите.имл датотека је креирана у / вар / либ / Јенкинс / радни простор / именик.
Корак 5: Конфигуришите Јенкинс корак после израде да бисте позвали књигу Ансибле и позвали датотеку сите.имл. Сачувај посао.
Корак 6: Покрените посао израде и покрените Томцат УРЛ да бисте проверили да ли је апликација правилно постављена.
Управљајте објектима АВС С3 помоћу програма Ансибле
Ансибле С3 модул се може користити за добијање или стављање датотеке у или из С3 сегмента. Да бисмо користили овај модул, мораћемо да га инсталирамо и конфигуришемо гласати модул питхона који делује као АПИ (интерфејс апликативног програма) за приступ АВС-у. Ово мора бити инсталирано на Одговорна контролна машина.
На Редхат Линук-у
$ sudo yum install -y python python-dev python-pip
На Убунту-у
$ apt-get install -y python python-dev python-pip
Једном када је горе наведено, инсталирајте бото
$ sudo pip install boto boto3
Ако не можете да инсталирате, мораћете да омогућите ЕПЕЛ репо. Поступак се може наћи у првом делу серије чланака у одељку за инсталацију ансибле.
Једном када је горе наведено, такође морамо да пружимо акредитиве за АВС кориснике. Можете извести променљиве окружења АВС Аццесс и Сецрет Кеи
export AWS_ACCESS_KEY_ID='AK123' export AWS_SECRET_ACCESS_KEY='abc123'
Ако у случају да чак и након постављања горе наведених променљивих околине добијете грешку јер акредитиви нису пронађени, можете то исто навести и у приручнику.
Погледајмо сада неке примере како користити Ансибле са С3 сегментима, а касније и за креирање и укидање инстанци.
Пример 1:Створите празну канту са директоријумом
--- - hosts: localhost become: true tasks: - name: Create an S3 bucket s3: aws_access_key= aws_secret_key= bucket=ansiblevnbucket object=/development mode=create permission=public-read region=ap-south-1
Белешка: Овде је начин креиран за стварање сегмента, а дозвола може бити јавно читана или јавно читљива-писати
Покрените књигу приручника и погледајте сегмент направљен са развојном фасциклом у њој.
Пример 2:Да копирате (отпремите) датотеку у серију С3
--- - hosts: localhost become: true tasks: - name: Copy file to S3 bucket s3: aws_access_key= aws_secret_key= bucket=ansibleniru object=/niru.txt src=/home/ansible/niru.txt mode=put
Овде је објекат датотека креирана унутар сегмента. То може бити датотека или фасцикла. У овом случају то је датотека. Извор је датотека која се преузима са локалне машине која је контролна машина Ансибле.
Белешка:Овде је стављен режим за уплоад објекта
Покрените књигу приручника и погледајте канту С3.
Пример 3:Преузмите (преузмите) датотеку из сегмента С3
--- - hosts: localhost become: true tasks: - name: Download file from S3 bucket s3: aws_access_key= aws_secret_key= bucket=ansibleniru object=/niru.txt dest=/home/ansible/niranjan.txt mode=get
Белешка:Овде се користи начин за преузимање објекта
Пример 4:Избришите објекат или датотеку из сегмента С3
--- - hosts: localhost become: true tasks: - name: Delete an S3 bucket aws_s3: aws_access_key= aws_secret_key= bucket=ansiblevnbucket object=/development/niranjan.txt mode=delobj
Белешка:Овде је режим делобј за брисање објекта
Пример 5:Избришите канту и сав садржај
--- - hosts: localhost become: true tasks: - name: Delete an S3 bucket s3: aws_access_key= aws_secret_key= bucket=ansiblevnbucket mode=delete
Белешка:Овде је начин брисања за сегменте за брисање
Обезбедите АВС ЕЦ2 инстанцу користећи Ансибле
На крају, оставићу вам једну од најважнијих карактеристика Ансибле-а, а то је стварање или завртање АВС ЕЦ2 инстанце и такође како да је прекинете. Наравно, не заборавите да инсталирате гласати што је предуслов, а такође осигурава извоз корисника „АВС_АЦЦЕСС_КЕИ_ИД“ и „АВС_СЕЦРЕТ_АЦЦЕСС_КЕИ“.
У случају да извоз не функционише, у код додајте исти као што је приказано доле.
задати мрежни пролаз није пронађен Виндовс 10
Код у наставку ће вам показати како да креирате ЕЦ2 инстанцу заједно са креирањем сигурносне групе и пара кључева.
- Направите безбедносну групу
- Направите пар кључева и ПЕМ датотеку
- Направите ЕЦ2 инстанцу
- Снимите ИП адресу инстанце ЕЦ2 у датотеку инвентара ансибле
Претпостављам да су корисници који раде ову вежбу добро упућени у концепте АВС ЕЦ2.
Додајте доњи код у датотеку и покрените исти да бисте верификовали стварање инстанце ЕЦ2 у АВС конзоли. Како је код велик, подељен је на 2 странице, али осигурајте да све сачувате у једној имл датотеци.
--- - hosts: localhost become: true gather_facts: False vars: region: ap-south-1 instance_type: t2.micro ami: ami-5b673c34 # RedHat Linux 7.5 hosts_file: /etc/ansible/hosts tasks: - name: Create security group ec2_group: aws_access_key: aws_secret_key: name: 'vniranjan' description: 'V Niranjan Security Group' region: '{{ region }}' rules: - proto: tcp from_port: 22 to_port: 22 cidr_ip: 0.0.0.0/0 - name: Create an EC2 key ec2_key: aws_access_key: aws_secret_key: name: 'vniranjan' region: '{{ region }}' register: ec2_key - name: Save private key (PEM file) copy: content='{{ec2_key.key.private_key}}' dest=/home/ansible/vniranjan.pem mode=0600 when: ec2_key.changed - name: Create an ec2 instance ec2: aws_access_key: aws_secret_key: key_name: vniranjan group: vniranjan # security group name instance_type: '{{ instance_type}}' image: '{{ ami }}' wait: true region: '{{ region }}' count: 1 # default count_tag: Name: Demo instance_tags: Name: Demo register: ec2 - name: Save IP to inventory file lineinfile: dest: '{{hosts_file}}' insertafter: '[webservers]' line: '{{item.private_ip}}' with_items: '{{ec2.instances}}'
Покрените књигу са играма
/ етц / ансибле / домаћин датотека инвентара ажурирана приватном ИП адресом
Пријавите се на инстанцу
ссх -и „внирањан.пем“ ец2-усер@ец2-13-126-30-207.ап-соутх-1.цомпуте.амазонавс.цом
(Белешка:Кликните на доњу слику за увећани приказ)
Сигурносна група креирана
Направљен је пар кључева
Завршавање инстанци ЕЦ2
У овом одељку сазнајмо више о прекиду инстанци ЕЦ2.
На следећем екрану можете видети да се извршавају 2 инстанце и кораци за завршавање би били у следећем редоследу:
- Прекини ЕЦ2 инстанце помоћу ИД-а инстанце
- Уклоните сигурносну групу
- Уклоните пар кључева
Плаибоок за укидање обе инстанце ЕЦ2
--- - hosts: localhost gather_facts: false connection: local vars: instance_ids: - 'i-05945003313d20603' # Replace these with your EC2 instance id’s - 'i-0ce5ce5820bddf610' region: ap-south-1 keypair_name: vniranjan securitygroup_name: vniranjan tasks: - name: Terminate EC2 instance ec2: aws_access_key: aws_secret_key: instance_ids: '{{instance_ids}}' region: '{{region}}' state: absent wait: true - name: Remove EC2 Key ec2_key: aws_access_key: aws_secret_key: name: '{{keypair_name}}' state: absent region: '{{region}}' - name: Remove Security Group ec2_group: aws_access_key: aws_secret_key: name: '{{securitygroup_name}}' state: absent region: '{{region}}'
Резиме
Данас већина ИТ организација тражи неку врсту диференцијатора да би освојила посао и представила исто својим клијентима. Рекао бих да је аутоматизација дефинитивно један од кључних диференцијатора.
Помоћу алата као што је Ансибле сматрам да бисте требали бити у могућности да аутоматизујете већину мануелних задатака који се понављају.
Дакле, оно што смо из овога научили Тродијелна серија Ансибле Туториал приказује Ансибле као веома популаран и моћан алат за управљање конфигурацијом који помаже у различитим областима аутоматизације, од аутоматизације задатака, примене апликација и пружања услуга у облаку. Стога првенствено говоримо о ИТ оркестрацији.
Надам се да вам се свидео низ туторијала за Ансибле и сигуран сам да бисте до сада стекли неизмерно знање о концепту.
Даље ћемо научити како да интегришемо Јенкинса са селеном који је такође део наше серије обуке ДевОпс.
ПРЕВ Туториал |. | СЛЕДЕЋА Лекција
Препоручено читање
- Водич за Ансибле: Инсталација и употреба са Ансибле модулима
- Непрекидна интеграција у ДевОпс
- Континуирана испорука у ДевОпс-у
- Интеграција Јенкинса са Селениум ВебДривер: Водич корак по корак
- Шта је интеграционо тестирање (Водич са примером интеграционог тестирања)
- Интеграција селена са ЈМетером
- Аутоматизација задатака коришћењем Ансибле Плаибоокс и Ансибле трезора са примерима
- Континуирано постављање у ДевОпс