rpm和yum的區別node
yum 自動解決包的依賴關係
查看軟件包是否安裝python
rpm -qa | grep python2-pip rpm -q nginx
yumnginx
[epel] # 組名 name=Extra Packages for Enterprise Linux 7 - $basearch # 名字 baseurl=http://mirrors.aliyun.com/epel/7/$basearch # url failovermethod=priority enabled=1 # 是否啓動 gpgcheck=0 # 是否校驗gpgkey,0表示不校驗,1表示校驗 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 # 查詢包組 yum grouplist # 安裝包組 yum groupinstall -y '包組名'
# rpm -ql ansible | more /etc/ansible /etc/ansible/ansible.cfg # ansible配置文件 /etc/ansible/hosts /etc/ansible/roles
Usage: ansible <host-pattern> [options]
ansible 主機ip -m ping ansible 主機1 ip, 主機2 ip -m ping ansible 分組名 -m ping ansible 分組一,分組二 -m ping ansible "分組一:分組二" -m ping # 並集 ansible "分組一:&分組二" -m ping # 交集 ansible "分組一:!分組二" -m ping # 差集
ansible-doc -l Usage: ansible-doc [-l|-s] [options] [-t <plugin type] [plugin] plugin documentation tool Options: -a, --all **For internal testing only** Show documentation for all plugins. -h, --help show this help message and exit -l, --list List available plugins -M MODULE_PATH, --module-path=MODULE_PATH prepend colon-separated path(s) to module library (default=[u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']) -s, --snippet Show playbook snippet for specified plugin(s) -t TYPE, --type=TYPE Choose which plugin type (defaults to "module") -v, --verbose verbose mode (-vvv for more, -vvvv to enable connection debugging) --version show program's version number and exit # 統計總個的模塊個數 ansible-doc params | wc -l # 查看某個模塊參數的用法(如:查看command模塊中的-s參數) ansible-doc -s command
ansible-doc -s command - name: Executes a command on a remote node command: chdir: # Change into this directory before running the command. creates: # A filename or (since 2.0) glob pattern, when it already exists, this step will *not* be run. free_form: # (required) The command module takes a free form command to run. There is no parameter actually named 'free form'. See the examples! removes: # A filename or (since 2.0) glob pattern, when it does not exist, this step will *not* be run. stdin: # Set the stdin of the command directly to the specified value. warn: # If command_warnings are on in ansible.cfg, do not warn about this particular line if set to `no'. # 注意: variables like `$HOME' and operations like `"<"', `">"', `"|"', `";"' and `"&"' will not work.
# 修改用戶密碼 ansible 主機id/分組 -m shell -a "echo 'passwd' | passwd --stdin 用戶名" # 遠程執行腳本 ansible 主機id/分組 -m shell -a "./1.py"
# 在其餘機器上執行管控機上的文件 ansible 主機id/分組 -m script -a "./2.py"
# 複製文件到遠程主機 ansible 主機id/分組 -m copy -a "src=源文件路徑 dest=目標文件路徑" # 複製文件到遠程主機,並對遠程主機上的原文件進行備份 ansible 主機id/分組 -m copy -a "src=源文件路徑 dest=目標文件路徑 backup=yes" # 複製文件到遠程主機,並修改屬主和權限 ansible 主機id/分組 -m copy -a "src=源文件路徑 dest=目標文件路徑 owner=用戶名 mode=700" # 將content中的內容覆蓋寫入到指定文件中 ansible 主機id/分組 -m copy -a "dest=目標文件路徑 owner=用戶名 mode=700 content=nihao"
# 在遠程主機上建立一個文件 ansible 主機id/分組 -m file -a "path=路徑 state=touch" # 在遠程主機上建立一個文件夾 ansible 主機id/分組 -m file -a "path=路徑 state=directory" # 在遠程主機上建立軟鏈接 ansible 主機id/分組 -m file -a 'path=目標 state=link src=源文件' # 在遠程主機上建立硬鏈接 ansible 主機id/分組 -m file -a 'path=目標 state=hard src=源文件' # 在遠程主機上刪除文件 ansible 主機id/分組 -m file -a 'path=文件路徑 state=absent'
# 拉取被管控機的文件或目錄到本地,以被管控機的ip做爲目錄名,並保留原有的目錄結構 ansible 主機id/分組 -m fetch -a "src=/var/log/cron dest=/root"
# 在被控機上安裝軟件包 ansible 主機id/分組 -m yum -a "name=軟件名" # 在被控機上安裝軟件包組 ansible 主機id/分組 -m yum -a "name=@包組名" # 在被控機上卸載軟件包 ansible 主機id/分組 -m yum -a "name=軟件名 state=absent"
# 安裝指定模塊 ansible 主機ip/分組 -m pip -a "name=模塊名"
# 開啓nginx ansible 主機ip/分組 -m service -a "name=nginx state=started" # 關閉nginx ansible 主機ip/分組 -m service -a "name=nginx state=stoped"
分 時 日 月 周 job 1 0 * * * * * * * * # 建立定時任務 ansible 主機ip/分組 -m cron -a "minute=58 job='touch 1.txt' name=nihao" # 刪除定時任務 ansible 主機ip/分組 -m cron -a "minute=58 job='touch 1.txt' name=nihao disable=yes"
# 用戶 - 超級用戶 root 0 - 系統用戶 不能登陸 201-999 centos7 1-499 centos6 - 普通用戶 能夠登陸 1000-60000 centos7 500-65535 centos6 # 組 - 超級組 root 0 - 系統組 201-999 centos7 1-499 centos6 - 普通組 1000-60000 centos7 500-65535 centos6 # 新建用戶並指定組 ansible db -m user -a "name=test groups=root" # 刪除用戶可是不刪除家目錄 ansible db -m user -a "name=test state=absent" # 刪除用戶同時刪除家目錄 ansible db -m user -a "name=test state=absent remove=yes"
# 建立普通組 ansible 主機ip/分組 -m user -a "name=組名" # 刪除普通組 ansible 主機ip/分組 -m user -a "name=組名 state=absent"
# 查看ansible收集的信息 ansible 主機ip/分組 -m setup