更多關(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/