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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

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

別不承認了,你對于Ansible并不了解

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

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

技巧1:校驗你的模板文件是否正確

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

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

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

校驗 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

校驗 Prometheus 配置文件:

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

校驗 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 是要求每臺機器都是不同的。這時 host 變量派上用場了。定義 host 變量有兩種方式:

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

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

第二種:在 host_vars 目錄中定義

這種方式筆者認為可維護性更高

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

推薦兩種方式都使用,因為變量的作用域問題會把你搞暈

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

某個 shell 需要一個臨時變量,可以使用 environment 實現(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 變量解決機器連接方式的不統(tǒng)一的問題

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

舉個例子,當前的文件內(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)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 配置
    +關注

    關注

    1

    文章

    187

    瀏覽量

    18341

原文標題:使用Ansible實現(xiàn)自動化運維的一些技巧

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

收藏 人收藏

    評論

    相關推薦

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

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

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

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

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

    想學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

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

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

    CCD與CMOS技術,這些是不了解

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

    或許并不了解新能源汽車

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

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

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

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

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

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

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

    無線充電技術不了解

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

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

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

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

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

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

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

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

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