0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

別不承認(rèn)了,你對于Ansible并不了解

阿銘linux ? 來源:電子發(fā)燒友網(wǎng) ? 作者:工程師譚軍 ? 2018-07-05 11:05 ? 次閱讀

最近一年有機(jī)會在生產(chǎn)環(huán)境上使用 Ansible。用的過程中,想把一些小技巧記錄下來,避免自己忘記。如果能幫助到其他同學(xué)就更好了。如果有同學(xué)指出有更好的方法,就更更好了。

技巧1:校驗(yàn)?zāi)愕哪0逦募欠裾_

通常我們會使用templatemodule 來生成應(yīng)用的配置,比如生成 Nginx 的配置或者 sudoers 配置。而像 sudoers 文件內(nèi)的配置錯誤可能直接導(dǎo)致無法登錄。所以,我們希望在生成這些配置文件后能校驗(yàn)一下它的正確性。如果校驗(yàn)失敗,直接停止,不生成該配置文件。

而templatemodule 有一個屬性validate就是為了實(shí)現(xiàn)這一需求的:

- template: src: "user-sudoers" dest: "/etc/sudoers.d/abc" validate: visudo -cf %s

校驗(yàn) Nginx 配置文件的文件:

- name: Copy the nginx file template: src: nginx.conf.j2 dest: /etc/nginx/nginx.conf validate: "/usr/sbin/nginx-t-c%s" notify: - restart nginx

校驗(yàn) Prometheus 配置文件:

- name: Copy Prometheus config template: src: prometheus.yml.j2 dest: "/etc/prometheus.yml" validate: "promtoolcheckconfig%s" notify: reload prometheus config

校驗(yàn) Logstash 配置文件:

- name: template configs template: src: "logstash-filter.conf" dest: "/opt/logstash/conf" validate: "logstash-t-f%s" environment: JAVA_HOME: "" ## logstash 命令需要 JAVA_HOME 環(huán)境變量

技巧2:使用 host 變量解決分布式系統(tǒng)中的 id 問題

在部署 Zookeeper 時,通常會部署 3 臺組成集群,同時每臺 Zookeeper 都需要在配置一個 myid 的文本文件,而這個文件中只放id。而 id 是要求每臺機(jī)器都是不同的。這時 host 變量派上用場了。定義 host 變量有兩種方式:

第一種:直接在 inventory 文件中定義

[zk] 192.168.1.11 myid=1 192.168.1.12 myid=2 192.168.1.13 myid=3

第二種:在 host_vars 目錄中定義

這種方式筆者認(rèn)為可維護(hù)性更高

├── group_vars ├── host_vars │ ├── 192.168.1.11 │ ├── 192.168.1.12 │ ├── 192.168.1.13 ├── hosts#cat 192.168.1.11myid: 1

推薦兩種方式都使用,因?yàn)樽兞康淖饔糜騿栴}會把你搞暈

技巧3:在執(zhí)行 shell 時需要某個環(huán)境變量

某個 shell 需要一個臨時變量,可以使用 environment 實(shí)現(xiàn)

- name: install | Build commons daemon. shell: "./configure&&makechdir=/opt/pinpoint/" environment: - JAVA_HOME: ""

技巧4:Jinjia2 語法:去除最后的逗號

以下方式會生成:a,a,a,a,注意最后的逗號我們是不需要的:

{% for f in files %} a, {% endfor %}

這時,我們可以這樣:

{% for f in files %} a{%- if not loop.last -%},{% endif %} {% endfor %}

技巧5: 利用 host 變量解決機(jī)器連接方式的不統(tǒng)一的問題

機(jī)器標(biāo)準(zhǔn)化要求每臺機(jī)器的ssh連接方式及管理員用戶名及密碼都是一樣的。但是事實(shí)中,面對老機(jī)器,常常做不過。所以,我們的 Ansible 腳本必須能做到不同的機(jī)器可以使用不同的連接方式、管理員用戶名和密碼。利用 host 變量就可以實(shí)現(xiàn)了。

舉個例子,當(dāng)前的文件內(nèi)容如下:

├── group_vars ├── host_vars │ ├── 192.168.1.11 │ ├── 192.168.1.12 │ ├── 192.168.1.13 ├── hosts#cat 192.168.1.11ansible_ssh_user: abcansible_become_method: sudoansible_ssh_private_key_file: /users/abc/id_rsa#cat 192.168.1.12ansible_ssh_user: bcdansible_become_method: sudoansible_ssh_pass: 1234567#cat 192.168.1.13ansible_ssh_user: bcdansible_become_method: suansible_ssh_private_key_file: /users/bcd/id_rsaansible_ssh_pass: 1234567

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 配置
    +關(guān)注

    關(guān)注

    1

    文章

    187

    瀏覽量

    18325

原文標(biāo)題:使用Ansible實(shí)現(xiàn)自動化運(yùn)維的一些技巧

文章出處:【微信號:aming_linux,微信公眾號:阿銘linux】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    新人報(bào)道一下,初到貴地有不了解的還請各位指教

    新人報(bào)道一下,初到貴地有不了解的還請各位指教
    發(fā)表于 09-04 14:55

    不了解Zigbee?看這里讓了解來龍去脈!

    不了解Zigbee?看這里讓了解來龍去脈作為除了wifi、藍(lán)牙之外,ZigBee是目前最重要的無線通信協(xié)議之一,主要應(yīng)用于物聯(lián)網(wǎng)和智能硬件等領(lǐng)域。關(guān)于ZigBee,下文采用問答形式向你詳細(xì)地介紹了
    發(fā)表于 03-01 14:05

    想學(xué)DSP,想買一個開發(fā)板,但是對于dsp方面不了解,想請問買什么開發(fā)板比較好

    想學(xué)DSP,想買一個開發(fā)板,但是對于dsp方面不了解,想請問買什么開發(fā)板比較好,主要是資料要全。謝謝了
    發(fā)表于 04-16 21:39

    java開發(fā)人員不了解jvm調(diào)優(yōu)對工作有影響嗎

    作為一名java開發(fā)人員,不了解jvm調(diào)優(yōu)對工作有什么影響?
    發(fā)表于 04-10 11:57

    鏈接腳本對一些命令不了解

    在學(xué)到i2c后,鏈接腳本變得復(fù)雜些,最主要是對一些命令不了解;i2c.lds如下:SECTIONS { . = 0x00000000; .init : AT(0){ head.o init.o
    發(fā)表于 04-25 04:09

    CCD與CMOS技術(shù),這些是不了解

    CCD與CMOS技術(shù),這些是不了解
    發(fā)表于 06-01 07:12

    或許并不了解新能源汽車

    現(xiàn)在不管是各大網(wǎng)站、報(bào)紙,還是新聞電視臺,有關(guān)新能源汽車的新聞鋪天蓋地,但又有多少人真正知道新能源汽車是怎么運(yùn)行的呢?
    發(fā)表于 02-17 10:35 ?672次閱讀

    總結(jié)使用 Vim 的過程中不得不了解的一些指令和注意事項(xiàng)

    Vim 是一個上古神器,本篇文章主要持續(xù)總結(jié)使用 Vim 的過程中不得不了解的一些指令和注意事項(xiàng),以及持續(xù)分享一個前端工作者不得不安裝的一些插件,而關(guān)于 Vim 的簡介,主題的選擇,以及為何使用 vim-plug 來管理插件等內(nèi)容。
    的頭像 發(fā)表于 12-27 16:44 ?4781次閱讀

    對于三元動力電池的未來,并不了解

    目前在干法單拉隔膜領(lǐng)域表現(xiàn)靠前的企業(yè)有星源材質(zhì)、中興新材、滄州明珠、東航光電、安瑞達(dá)、惠強(qiáng)、盈博萊等(排名不分先后)。
    的頭像 發(fā)表于 07-05 10:58 ?4357次閱讀

    Ansible入門教程如何快速了解Ansible

    頂級大牛帶你20分鐘玩轉(zhuǎn)Ansible!
    的頭像 發(fā)表于 05-12 11:49 ?5097次閱讀

    無線充電技術(shù)不了解

    這種Wi-Fi充電技術(shù),并不需要對傳統(tǒng)的無線路由器進(jìn)行更換,只需要部署軟件等方案,提供充電功能之后,并不會對互聯(lián)網(wǎng)接入的功能造成影響。
    發(fā)表于 12-16 14:03 ?1705次閱讀

    到底了不了解物聯(lián)網(wǎng)

    物聯(lián)網(wǎng)其實(shí)現(xiàn)在對于很多人來說都是值得去看的東西,但是很多人又不了解什么是物聯(lián)網(wǎng),因?yàn)檫@樣的不了解導(dǎo)致不敢去接觸這樣的產(chǎn)品,但是其實(shí)產(chǎn)品本身所存在的優(yōu)勢已經(jīng)很強(qiáng)烈了,是絕對值得去研究的
    的頭像 發(fā)表于 01-20 09:29 ?1349次閱讀

    不了解中斷,還怎么玩單片機(jī)?資料下載

    電子發(fā)燒友網(wǎng)為提供不了解中斷,還怎么玩單片機(jī)?資料下載的電子資料下載,更有其他相關(guān)的電路圖、源代碼、課件教程、中文資料、英文資料、參考設(shè)計(jì)、用戶指南、解決方案等資料,希望可以幫助到廣大的電子工程師們。
    發(fā)表于 04-10 08:49 ?13次下載
    <b class='flag-5'>不了解</b>中斷,還怎么玩單片機(jī)?資料下載

    大部分不了解的光纖接頭了解

    隨著光纖線的廣泛使用,大家對其有一些了解,那光纖接頭類型大家了解嗎?ST、SC、FC光纖接頭是早期不同企業(yè)開發(fā)形成的標(biāo)準(zhǔn),使用效果一樣,各有優(yōu)缺點(diǎn),下面由科蘭小編為大家詳細(xì)的普及一下。
    的頭像 發(fā)表于 11-09 09:59 ?2280次閱讀

    做好繞線功率電感器選型不得不了解的內(nèi)容

    做好繞線功率電感器選型不得不了解的內(nèi)容 編輯:谷景電子 繞線功率電感器在電子器件中起著重要的作用,用于濾除高頻噪聲和干擾信號。所以,正確選型繞線功率電感器是確保設(shè)備正常運(yùn)行的關(guān)鍵之一。今天文章將為
    的頭像 發(fā)表于 06-18 20:06 ?662次閱讀