saltstack 的日常使用 (三)

更多關(guān)注:http://www.mknight.cn/

salt 修改 minion id

minion id

salt 默認(rèn)使用hostname作為minion ID。如果后期需要修改主機(jī)名,就要注意及時更改minion ID。

修改流程

  • 停止服務(wù)
    service salt-minion stop
    
  • 刪除minion公鑰文件
    rm /etc/salt/pki/minion/minion.pub
    rm /etc/salt/pki/minion/minion.pem
    
  • 修改新的minion id
    echo NewId > /etc/salt/minion_id
    
  • master 刪除舊的Key
    salt-key -d oldId
    
  • minion重啟
    service salt-minion start
    
  • master重新接受
    salt-key -a NewId
    

查看host信息

管理本地hosts文件,服務(wù)器比較多,需要增加一個本地域名解析需要耗費(fèi)比較長的時間,請看如下alt.modules.hosts模塊使用詳解.

添加host

salt.modules.hosts.add_host(ip, alias)
增加hosts配置到hosts文件中
范例:

# salt '*' hosts.add_host 1.1.1.1 ttlsa.com
localhost.localdomain:
True

salt.modules.hosts.get_alias(ip)

范例:

# salt '*' hosts.get_alias 1.1.1.1
localhost.localdomain:
- baidu.com

通過主機(jī)名獲取IP地址列表

salt.modules.hosts.get_ip(host)
范例:


# salt '*' hosts.get_ip ttlsa.com
localhost.localdomain:
1.1.1.1

判斷IP與別名是否配對

salt.modules.hosts.has_pair(ip, alias)
范例:

# salt '*' hosts.has_pair 1.1.1.1 ttlsa.com
localhost.localdomain:
True

列出hosts列表

salt.modules.hosts.list_hosts()
CLI 范例:

# salt '*' hosts.list_hosts
localhost.localdomain:
----------
1.1.1.1:
- ttlsa.com
127.0.0.1:
- localhost
- localhost.localdomain
::1:
- localhost
- localhost.localdomain

刪除host條目

salt.modules.hosts.rm_host(ip, alias)
范例:

# salt '*' hosts.rm_host 1.1.1.1 baidu.com
localhost.localdomain:
True

更新hosts條目

salt.modules.hosts.set_host(ip, alias)
通過ip地址修改主機(jī)名,如果ip不存在則增加條目
范例:

# salt '*' hosts.set_host 1.1.1.1 baidu.com
localhost.localdomain:
 True

管理用戶

使用Salt在多平臺進(jìn)行用戶管理將變得非常簡單。 user模塊允許管理員管理(原文為present)賬戶各個方面和刪除(absent)賬戶。本篇文章將描述user模塊的各個組件,并將給出一個管理賬戶的state例子.

user.present

user.present: 確保指定的賬戶名存在,并指定其對應(yīng)的屬性. 這些屬性包括如下內(nèi)容:

name: 指定需要管理的賬戶名.

uid: 指定uid, 如果不設(shè)置將配自動分配下一個有效的uid.

gid: 指定默認(rèn)的組id(group id)

gid_from_name: 如果設(shè)置為True,默認(rèn)的組id將自動設(shè)置為和本用戶同名的組id

groups: 分配給該用戶的組列表(a list of groups). 如果組在minion上不存在,則本state會報(bào)錯. 如果設(shè)置會空,將會刪除本用戶所屬的除了默認(rèn)組之外的其他組

optional_groups: 分配給用戶的組列表。 如果組在minion上不存在,則state會忽略它.

home: 關(guān)于用戶的家目錄(home directory).

password: 設(shè)置用戶hash之后的密碼.

enforce_password: 當(dāng)設(shè)置為False時,如果設(shè)置的password與用戶原密碼不同,將保持原密碼不做更改.如果沒有設(shè)置password選項(xiàng),該選項(xiàng)將自動忽略掉.

shell: 指定用戶的login shell。 默認(rèn)將設(shè)置為系統(tǒng)默認(rèn)shell。

unique: UID唯一,默認(rèn)為True.

system: 從FIRST_SYSTEM_UID和LAST_SYSTEM_UID間選擇一個隨機(jī)的UID.

用戶描述選項(xiàng)(GECOS)支持(當(dāng)前只支持Linux和FreeBSD系統(tǒng)):

fullname: 指定用戶全名(full name).

roomnumber: 指定用戶的房間號.

workphone: 指定用戶的工作電話號碼.

homephone: 指定用戶的家庭電話號碼.

user.absent

user.absent用于刪除用戶.其有以下選項(xiàng):

name: 指定需要刪除的用戶名.

purge: 設(shè)置清除用戶的文件(家目錄)

force: 如果用戶當(dāng)前已登錄,則absent state會失敗. 設(shè)置force選項(xiàng)為True時,就算用戶當(dāng)前處于登錄狀態(tài)也會刪除本用戶.

當(dāng)管理用戶時,至少需要指定user.present或user.absent。 其他選項(xiàng)是可選的,比如uid、gid、home等選項(xiàng)沒有指定是,將自動使用下一個有效的或者系統(tǒng)默認(rèn)的.

users.sls

下面將列出一個管理cedwards用戶的state聲明例子. 本state中定義了fullname、shell、home、uid、gid和groups列:

cedwards:
  user.present:
    - fullname: Christer Edwards
    - password: '$6$JyhDBiOi5ZyvaDWm$.5QKIgCtYOLXpLDCc9HMJ8fnAq.c3enJ32BIWGcuKt/y2awHL3w2PlNLxJD9gHE/FtKkG348P8HArXGSkd5uC/'
    - shell: /usr/local/bin/bash
    - home: /home/cedwards
    - uid: 1001
    - gid: 1001
    - groups:
      - wheel
jdoe:
  user.absent

更多關(guān)注:http://www.mknight.cn/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容