企業(yè)名稱的英文做網(wǎng)站名中小企業(yè)管理培訓(xùn)課程
目錄
- 常見become_method
- become_flags
- `su` 常見選項(xiàng)總結(jié)
- `sudo` 常見選項(xiàng)總結(jié)
- `pbrun` 常見選項(xiàng)總結(jié)
- `pfexec` 常見選項(xiàng)總結(jié)
- `doas` 常見選項(xiàng)總結(jié)
- 示例
- 使用 `sudo` 的示例:
- 使用 `pbrun` 的示例:
- 使用 `pfexec` 的示例:
- 使用 `doas` 的示例:
- 配置方式
- 1. 配置文件
- 2. 命令行參數(shù)
- 3. Playbook 配置
- 全局配置
- 任務(wù)級(jí)別配置
- 4. Inventory 文件配置
常見become_method
become_method
用于指定在遠(yuǎn)程主機(jī)上提升權(quán)限的方法。常見的方法包括:
-
sudo: 通過
sudo
命令提升權(quán)限,通常是從普通用戶提升到超級(jí)用戶(root)。- 示例:
become_method: sudo
- 特點(diǎn):需要在目標(biāo)主機(jī)上配置sudoers文件,指定哪些用戶有權(quán)限使用sudo。
- 示例:
-
su: 通過
su
命令切換到其他用戶,通常是從普通用戶切換到超級(jí)用戶。- 示例:
become_method: su
- 特點(diǎn):需要提供目標(biāo)用戶的密碼,適用于不支持sudo的系統(tǒng)。
- 示例:
-
pbrun: 使用Privilege Manager的
pbrun
命令提升權(quán)限。- 示例:
become_method: pbrun
- 特點(diǎn):適用于使用Privilege Manager的企業(yè)環(huán)境。
- 示例:
-
pfexec: 使用Solaris上的
pfexec
命令提升權(quán)限。- 示例:
become_method: pfexec
- 特點(diǎn):適用于Solaris系統(tǒng)。
- 示例:
-
doas: 使用OpenBSD上的
doas
命令提升權(quán)限。- 示例:
become_method: doas
- 特點(diǎn):適用于OpenBSD系統(tǒng)。
- 示例:
become_flags
become_flags
用于指定在使用become_method
提升權(quán)限時(shí)的附加命令行標(biāo)志。這些標(biāo)志根據(jù)具體的become_method
而有所不同。
以下是其他常見 become_method
及其 become_flags
配置的總結(jié):
su
常見選項(xiàng)總結(jié)
- -c “command”: 執(zhí)行指定的命令。
- -l: 模擬完整的登錄,加載用戶的環(huán)境變量。
- -r: 模擬完整的登錄,加載用戶的環(huán)境變量(與
-l
類似)。 - -m 或 -p: 保留當(dāng)前環(huán)境變量。
- -s /bin/bash: 指定要使用的 shell。
- -f: 快速模式,不執(zhí)行
.profile
文件。
sudo
常見選項(xiàng)總結(jié)
- -H: 切換用戶的
HOME
環(huán)境變量為目標(biāo)用戶的主目錄。 - -S: 從標(biāo)準(zhǔn)輸入讀取密碼,通常用于非交互式環(huán)境。
- -u username: 指定以哪個(gè)用戶身份執(zhí)行命令,默認(rèn)是 root。
- -b: 在后臺(tái)執(zhí)行命令。
- -i: 模擬初次登錄,加載用戶的環(huán)境變量。
- -E: 保留用戶的環(huán)境變量,不重置環(huán)境變量。
- -k: 強(qiáng)制重新輸入密碼,不使用緩存的認(rèn)證。
pbrun
常見選項(xiàng)總結(jié)
- -u username: 指定以哪個(gè)用戶身份執(zhí)行命令。
- -p policy: 使用特定的安全策略執(zhí)行命令。
- -n: 不提示輸入密碼。
- -t timeout: 指定命令的超時(shí)時(shí)間。
pfexec
常見選項(xiàng)總結(jié)
- -s: 使用指定的 shell 執(zhí)行命令。
- -u username: 指定以哪個(gè)用戶身份執(zhí)行命令。
doas
常見選項(xiàng)總結(jié)
- -u username: 指定以哪個(gè)用戶身份執(zhí)行命令,默認(rèn)是 root。
- -n: 不提示輸入密碼。
- -s: 使用指定的 shell 執(zhí)行命令。
示例
使用 sudo
的示例:
- hosts: allbecome: yesbecome_method: sudobecome_flags: '-H -u username'tasks:- name: 安裝HTTP服務(wù)器apt:name: apache2state: present
使用 pbrun
的示例:
- hosts: allbecome: yesbecome_method: pbrunbecome_flags: '-u root -n'tasks:- name: 執(zhí)行自定義命令command: /path/to/your/command
使用 pfexec
的示例:
- hosts: allbecome: yesbecome_method: pfexecbecome_flags: '-s'tasks:- name: 執(zhí)行自定義命令command: /path/to/your/command
使用 doas
的示例:
- hosts: allbecome: yesbecome_method: doasbecome_flags: '-u username -n'tasks:- name: 執(zhí)行自定義命令command: /path/to/your/command
配置方式
1. 配置文件
你可以在 Ansible 的配置文件(通常是 ansible.cfg
)中設(shè)置 become_method
和 become_flags
。在配置文件中添加以下內(nèi)容:
[defaults]
become=True
become_method=su
become_flags=-r
2. 命令行參數(shù)
在執(zhí)行 Ansible 命令時(shí),可以使用命令行參數(shù)來設(shè)置 become_method
和 become_flags
。例如:
ansible-playbook -i inventory playbook.yml --become --become-method=su --become-flags="-r"
3. Playbook 配置
在 Playbook 中,你可以在全局或任務(wù)級(jí)別設(shè)置 become_method
和 become_flags
。
全局配置
- hosts: allbecome: yesbecome_method: subecome_flags: '-r'tasks:- name: 執(zhí)行自定義命令command: /path/to/your/command
任務(wù)級(jí)別配置
- hosts: allbecome: yestasks:- name: 使用 su 提升權(quán)限并執(zhí)行命令become_method: subecome_flags: '-r'command: /path/to/your/command
4. Inventory 文件配置
在 Inventory 文件中,你可以為特定主機(jī)或主機(jī)組設(shè)置 become_method
和 become_flags
。
[all:vars]
ansible_become=yes
ansible_become_method=su
ansible_become_flags=-r[webservers]
webserver1.example.com
webserver2.example.com[dbservers]
dbserver1.example.com
dbserver2.example.com