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