欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

Asible學(xué)習(xí)筆記--常用模塊(二)

Ansible常用模塊

本節(jié)包括的模塊:

創(chuàng)新互聯(lián)為客戶提供專業(yè)的成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、程序、域名、空間一條龍服務(wù),提供基于WEB的系統(tǒng)開發(fā). 服務(wù)項(xiàng)目涵蓋了網(wǎng)頁設(shè)計(jì)、網(wǎng)站程序開發(fā)、WEB系統(tǒng)開發(fā)、微信二次開發(fā)、移動(dòng)網(wǎng)站建設(shè)等網(wǎng)站方面業(yè)務(wù)。

(1)包管理模塊yum

(2)配置yum源模塊yum_repository

(3)服務(wù)管理模塊service

(4)systemd模塊

(5)用戶管理模塊user

(6)debug模塊

(7)定時(shí)任務(wù)模塊cron

包管理模塊yum

yum--Ansible官方使用說明文檔

ansible-doc -s yum
- name: Manages packages with the `yum' package manager
  yum:
      disable_gpg_check: # 安裝包時(shí)禁止gpgcheck,僅在state=present或latest時(shí)生效。
      disablerepo:       # 禁用指定的repoid,多個(gè)repoid使用逗號分隔。
      enablerepo:        # 明確使用該repoid
      exclude:           # 排除哪些包不安裝,僅在state=present或latest時(shí)生效。
      list:              # 類似于yum list。
      name:              # 指定安裝的包名,可帶上版本號。多個(gè)包可使用逗號分隔。
      state:             # 狀態(tài)。('present'、'installed','latest')用于安裝包,
                         # ('absent'、'removed')用于移除已安裝包。
      update_cache:      # 強(qiáng)制更新yum的cache。                    

name需要配合state來使用,如果state指定為present/installed/latest將安裝包,其中l(wèi)atest是安裝最新包,默認(rèn)為present。如果指定為absent/removed則用于卸載包。

在ansible中,很多地方都會出現(xiàn)present和absent的狀態(tài),它們一般都表示目標(biāo)是否應(yīng)該存在還是不存在,也就是要進(jìn)行的動(dòng)作是創(chuàng)建和刪除。

被控制端列出和nginx相關(guān)的包,如下:

ansible test -m yum -a "list=nginx" -f 10

被控制端安裝tree包,如下:

ansible test -m yum -a "name=tree state=installed" -o -f 8

被控制端安裝本地的包,且排除某些包不安裝,如下:

ansible centos -m yum -a "name=/tmp/*.rpm exclude=*unix* state=present"

被控制端卸載包:

ansible test -m yum -a "name=tree state=removed" -o -f 8

配置yum源模塊yum_repository

yum_repository--Ansible官方使用說明文檔

用于配置yum源??梢詫?shí)現(xiàn)非常完整的yum倉庫配置。但是一般只需簡單的添加yum源即可。所以,以下是簡單版的用法和示例。

ansible-doc -s yum_repository
- name: Add or remove YUM repositories
  yum_repository:
      baseurl:      #地址
      mirrorlist:   # 設(shè)置mirrorlist地址
      description:  # 描述信息
      enabled:      # 是否啟用該倉庫,默認(rèn)為yes
      file:         # 保存此倉庫的文件,不設(shè)置該項(xiàng)的話則默認(rèn)以name選項(xiàng)中的名稱命名,將自動(dòng)以".repo"后綴結(jié)尾。
      gpgcheck:     # 是否要進(jìn)行g(shù)pgcheck
      name:         # 倉庫的名稱,要保證名稱的唯一性
      reposdir:     # 保存.repo文件的目錄,默認(rèn)/etc/yum.repos.d/
      state:        # repo文件的狀態(tài),present/absent,默認(rèn)present。

示例如下:

ansible test -m yum_repository -a 'name=aliyun_epel description="epel repo" baseurl=http://mirrors.aliyun.com/epel/7/$basearch/ gpgcheck=no enabled=yes'

ansible test -m yum_repository -a 'name=rpmforge description="RPMforge YUM repo" file="external_repos" baseurl=http://apt.sw.be/redhat/el7/en/$basearch/rpmforge mirrorlist=http://mirrorlist.repoforge.org/el7/mirrors-rpmforge gpgcheck=no enabled=yes'

關(guān)于 baseurl 和 mirrorlist 之間的區(qū)別,可參考 yum配置文件中baseurl和mirrorlist的區(qū)別

- name: Add multiple repositories into the same file (2/2)
  yum_repository:
    name: rpmforge
    description: RPMforge YUM repo
    file: external_repos
    baseurl: http://apt.sw.be/redhat/el7/en/$basearch/rpmforge
    mirrorlist: http://mirrorlist.repoforge.org/el7/mirrors-rpmforge
    enabled: no

服務(wù)管理模塊service

service--Ansible官方使用說明文檔

ansible-doc -s service
- name: Manage services
  service:
      enabled: # 設(shè)置服務(wù)為開機(jī)自啟動(dòng),默認(rèn)為no
      name:    # 服務(wù)名
      state:   # 'started'和'stoped'分別啟動(dòng)和停止服務(wù),它們是冪等操作,多次啟動(dòng)或停止服務(wù)的結(jié)果是一樣的,
               # 也就是說對于運(yùn)行中的服務(wù)不會再執(zhí)行啟動(dòng)操作,同理停止也是一樣。'restarted'總是重啟服務(wù),
               # 'reloaded'總是重讀配置文件,如果服務(wù)是未運(yùn)行狀態(tài),則'reloaded會啟動(dòng)服務(wù)。
               # (state和enabled兩者至少要給一個(gè))

設(shè)置nginx開機(jī)自啟動(dòng):

ansible test -m service -a "name=nginx enabled=yes" -o -f 8

啟動(dòng)nginx服務(wù):

ansible test -m service -a "name=nginx state=started" -o -f 8

systemd模塊

管理systemd風(fēng)格的服務(wù)。systemd--Ansible官方使用說明文檔

ansible-doc -s systemd
- name: Manage services
  systemd:
      daemon_reload: # 在執(zhí)行所有動(dòng)作之前,先確定是否要reload一次。值為yes/no。
      enabled:       # 是否設(shè)置開機(jī)自啟動(dòng)。
      masked:        # 是否將此unit做mask(隱藏、掩蓋)處理。mask后的unit將無法啟動(dòng)。
      name:          # 待操作服務(wù)名??梢允莕ame,也可以是name.service。
      state:         # 'started'/'stopped'具有冪等性。但restarted和reloaded總是會執(zhí)行

關(guān)于 masked 這點(diǎn),我這里舉個(gè)例子說明,我們使用 docker 時(shí),有時(shí)候會遇到這樣的錯(cuò)誤:

Failed to start docker.service: Unit docker.service is masked.

那么這個(gè)時(shí)候,我們是無法使用 restart/start 來啟動(dòng) docker 的,因?yàn)?docker 被 mask 了~,我們可以采用下面的命令來啟動(dòng) docker :

systemctl unmask docker.service
systemctl unmask docker.socket
systemctl start docker.service

用戶管理模塊user

同理還有組管理模塊group,就不多做說明了。同樣,創(chuàng)建用戶時(shí),默認(rèn)會創(chuàng)建同名group。

user--Ansible官方使用說明文檔

group--Ansible官方使用說明文檔

ansible-doc -s user
- name: Manage user accounts
  user:
      name:            # 要?jiǎng)?chuàng)建、修改、移除的用戶名。
      password:        # 設(shè)置用戶密碼。此處只能使用加密密碼作為值。
      system:          # state=present 設(shè)置為yes表示創(chuàng)建一個(gè)系統(tǒng)用戶,只能用于創(chuàng)建,不能用于修改已有用戶為系統(tǒng)用戶。
      state:           # 創(chuàng)建用戶(present)還是刪除用戶(absent)。默認(rèn)為present。
      create_home:     # 創(chuàng)建家目錄,或者已有的用戶但家目錄不存在也會創(chuàng)建。設(shè)置為no則不創(chuàng)建家目錄。
      home:            # 指定要?jiǎng)?chuàng)建的家目錄路徑
      move_home:       # 如果設(shè)置為yes,則"home="則表示將家目錄移動(dòng)到此選項(xiàng)指定的路徑下。
      uid:             # 設(shè)置用戶的uid
      group:           # 設(shè)置用戶的primary group
      groups:          # 將用戶加入到輔助組列表中。如果設(shè)置"groups=",則會將此用戶從所有輔助組中移除。
      shell:           # 設(shè)置用戶的shell。
      force:           # 配合'state=absent'時(shí),等價(jià)于'userdel --force',即強(qiáng)制刪除用戶、家目錄和郵件列表。
      remove:          # 配合'state=absent'時(shí),等價(jià)于'userdel --remove',即刪除家目錄和郵件列表。
      update_password: # user是冪等模塊,"always"將總是修改密碼。"on_create"將只在創(chuàng)建用戶時(shí)設(shè)置密碼。 

創(chuàng)建系統(tǒng)用戶,并指定shell:

ansible test -m user -a "name=wtf system=yes shell=/bin/bash"

刪除用戶:

ansible test -m user -a "name=wtf state=absent"

指定update_password=always將總是修改用戶的密碼,不管該用戶是否已存在。而update_password=on_create則只有新創(chuàng)建用戶時(shí)才設(shè)置密碼,如果用戶已存在,則不會修改該用戶的密碼。默認(rèn)值就是always 。

## 生成加密密碼
openssl passwd -1 123456
$1$U0LHGwj5$bMocUtBQtkBwdplK.FIYe1

ansible test -m user -a 'name=wtf_test password="$1$U0LHGwj5$bMocUtBQtkBwdplK.FIYe1" update_password=always'

創(chuàng)建用戶并指定密碼,但如果用戶已存在則不修改密碼。

## 生成加密密碼
openssl passwd -1 12345678
$1$IPjg/uyu$YmJzqBHkqYrDHgrQ9zdJs/

ansible test -m user -a 'name=wtf_td password="$1$IPjg/uyu$YmJzqBHkqYrDHgrQ9zdJs/" update_password=on_create'

debug模塊

用于輸出自定義的信息,類似于echo、print等輸出命令。ansible中的debug主要用于輸出變量值、表達(dá)式值,以及用于when條件判斷時(shí)。使用方式非常簡單。

debug--Ansible官方使用說明文檔

ansible-doc -s debug
- name: Print statements during execution
  debug:
      msg:       # 輸出自定義信息。如果省略,則輸出普通字符。
      var:       # 指定待調(diào)試的變量。只能指定變量,不能指定自定義信息,且變量不能加{{}}包圍,而是直接的變量名。
      verbosity: # 控制debug運(yùn)行的調(diào)試級別,有效值為一個(gè)數(shù)值N。

舉例如下:

ansible test -m debug -a 'msg="this is a test"'

ansible test -m debug -a 'var=ansible_eth0.ipv4.address'

可以輸出變量值,不過一般使用到變量的時(shí)候都會在playbook中使用debug模塊,以下是一個(gè)示例:

tasks:
  - name: print any messages
      debug: msg="you name is {{ name }}"

定時(shí)任務(wù)模塊cron

cron模塊用于設(shè)置定時(shí)任務(wù),也用于管理定時(shí)任務(wù)中的環(huán)境變量。cron--Ansible官方使用說明文檔

ansible-doc -s cron
- name: Manage cron.d and crontab entries
  cron:
      backup:       # (yes/no)如果設(shè)置了,則會在修改遠(yuǎn)程cron_file前備份這些文件
      cron_file:    # 自定義cron_file的文件名,使用相對路徑則表示在/etc/cron.d中。必須同時(shí)指定user選項(xiàng)
      user:         # 指定哪個(gè)用戶的crontab將要被修改,默認(rèn)為root
      disabled:     # 禁用crontab中的某個(gè)job,要求state=present
      env:          # (yes/no)設(shè)置一個(gè)環(huán)境變量,將添加在crontab的頂端。使用name和value定義變量名和值
      job:          # 需要執(zhí)行的命令。如果設(shè)置了env,則表示環(huán)境變量的值,此時(shí)job="XXXX"等價(jià)于value="XXXX"。
                    # 要求state=present
      minute:       # 分(0-59, *, */N),不寫時(shí),默認(rèn)為*
      hour:         # 時(shí)(0-23, *, */N),不寫時(shí),默認(rèn)為*
      day:          # 日(1-31, *, */N),不寫時(shí),默認(rèn)為*
      month:        # 月(1-12, *, */N),不寫時(shí),默認(rèn)為*
      weekday:      # 周(0-6 for Sunday-Saturday, *),不寫時(shí),默認(rèn)為*
      name:         # 描述crontab任務(wù)的字符串。但如果設(shè)置的是env,則name為環(huán)境變量的名稱。要求state=absent
                    # 注意,若未設(shè)置name,且state=present,則總會創(chuàng)建一個(gè)新job條目,即使cron_file中已經(jīng)存在
                    # 同樣的條目
      special_time: # 定時(shí)任務(wù)的別稱,用于定義何時(shí)運(yùn)行job條目。
                    # 有效值有reboot/hourly/daily/weekly/monthly/yearly/annually。
      state:        # job或者env的狀態(tài)是present(默認(rèn))還是absent。present用于創(chuàng)建,absent用于移除

說明

本博文是參考馬龍帥大佬文章整理生成,屬于博主讀書筆記,如有侵權(quán),請大佬與我聯(lián)系,立刪!

最后,感謝開源,擁抱開源~

文章標(biāo)題:Asible學(xué)習(xí)筆記--常用模塊(二)
URL網(wǎng)址:http://chinadenli.net/article10/giehdo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、網(wǎng)站收錄響應(yīng)式網(wǎng)站、網(wǎng)站制作、App設(shè)計(jì)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)