rpm 和yum 的区别:
rpm: redhat package manager ;yum可以解决依赖关系
yum 源配置:
[epel] name=Extra Packages for Enterprise Linux 7 - $basearch #名字 baseurl=http://mirrors.aliyun.com/epel/7/$basearch #rpm源的地址,可以写http,https,ftp,Samba,file: failovermethod=priority enabled=1 # 是否开启,1代表开启,0表示关闭 gpgcheck=0 #是否校验签名,1代表校验,0表示校验 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
yum 安装包组:
yum grouplist # 查看包组信息
yum groupinstall # 安装包组
disablerepo #禁用源 enablerepo #启用源 name #包名 state install (`present' or `installed', `latest'), or remove (`absent' or `removed')
ansible web -m yum -a 'name=wget' # 安装wget ansible web -m yum -a 'name=python2-pip' # 安装python2-pip ansible web -m yum -a 'name=wget state=absent' # 卸载软件包 ansible web -m yum -a 'name="@Development Tools"' # 安装包组
pip install 安装包 pip freeze > a.txt 将python的环境打包到文件中 pip install -r a.txt 安装文件中的包 pip list 查看所有的以安装成功的包
ansible web -m pip -a 'name=flask' # 安装flask模块
ps -ef|grep nginx #查看进程 ss -tnlp # 查看端口信息 systemctl start nginx # centos7 service nginx start # centos6 systemctl enabled nginx # centos7 开机自启动 chkconfig nginx on # centos6开机自启动
ansible web -m service -a 'name=nginx state=started' # 启动nginx ansible web -m service -a 'name=nginx state=stopped' # 关闭nginx
* * * * * job 分 时 日 月 周 任务 0 */2 * * * job 每隔两个小时 0 12,13 * * * job 12点和13点 0 12-17 * * * job 12点到17点 0 12-17/2 * * 1,3,6,0 周1,周3,周6,周7 12点到17点每隔两个小时 crontab -e # 编辑计划任务 crontab -l # 查看计划任务 crontab -r # 删除计划任务
参数:
day 天
disabled 禁用
hour 小时
job 任务
minute 分钟
month 月
name 任务名字
weekday 周
ansible db -m cron -a 'minute=26 job="touch /tmp/xzmly.txt" name=touchfile' # 新建一个计划任务 ansible db -m cron -a 'name=touchfile state=absent' # 删除一个计划任务 ansible db -m cron -a 'minute=26 job="touch /tmp/xzmly.txt" name=touchfile disabled=yes' # 禁用计划任务,以#表示禁用
用户: 管理员 root 0 普通用户 系统用户 不能登录 1-999 centos7 1-499 centos6 登录用户 可以登录 1000-65535 centos7 500-65535 centos6 用户组: 管理员组 root 0 系统用户组 1-999 centos7 1-499 centos6 登录用户组 1000-65535 centos7 500-65535 centos6 -d 指定用户的家目录 -g 指定用户的组 -G 执行用户的附加组 -s 指定登录后使用的shell -r 创建一个系统组 useradd -r wusir 创建系统用户, 从999倒序 useradd -s /sbin/nologin alexsb 创建的是普通用户,从1000开始升序 useradd -d /opt/alexsb2 alexsb2 创建用户时指定用户的家目录 useradd -u 3000 alexsb6 # 创建用户并指定用户的uid userdel alex 删除用户 userdel -r alexsb2 删除用户并删除用户的家目录
group:
group 组 groups 附加组 home 家目录 name 用户名 password 密码 remove ? shell 用户登录后使用的shell system 创建一个系统用户 uid 用来指定用户的id state 状态 ansible db -m user -a 'name=wulaoshi uid=4000 home=/opt/wulaoshi groups=root shell=/sbin/nologin' #创建一个用户,并指定用户的id,用户的家目录,用户的附加组,用户的shell ansible db -m user -a 'name=wulaoshi state=absent' #删除用户但是不删除用户的家目录 ansible db -m user -a 'name=wulaoshi3 state=absent remove=yes' # 删除用户并删除用户的家目录
gid 组的id name 组名 system 系统组 state groupadd user 创建用户组 groupdel user 删除用户组 tail -1 /etc/group 查看组有没有创建成功 ansible db -m group -a 'name=wulaoshi system=yes' #创建系统组 ansible db -m group -a 'name=wulaoshi state=absent' # 删除组
web练习 创建一个用户组aaa10 ansible web -m group -a 'name=aaa10' 创建一个用户bbb10 ansible web -m user -a 'name=bbb10' 把/etc/fstab文件复制到远程主机上/tmp/f ansible web -m copy -a 'src=/etc/fstab dest=/tmp/f' 安装nginx,并启动,设置开机自启动 ansible web -m yum -a 'name=nginx' ansible web -m service -a 'name=nginx enabled=yes'
是一个编程语言
xml 是用来写配置文件的一个语言
ini ;yaml
字典: key: value 列表: [] - 后缀名 yaml yml
执行顺序: 从上往下
特性:幂等性 不管执行多少遍,结果都是一样的
ansible-playbook [options] playbook.yml [playbook2 ...] -C, --check # 检查,白跑,干跑 -f FORKS, --forks=FORKS #用来做并发 --list-hosts # 列出主机列表 --syntax-check # 语法检查
简单用法
- hosts: web tasks: - name: creategroup group: name=alex10 - name: cretaeuser user: name=wusir10
- hosts: web tasks: - name: create{ { user }} user: name={ { user}}
第一种方式
ansible-playbook -e 'user=alexsb10' p2.yml
第二种方式
# hosts文件 [db] 192.168.107.132 user=alexsb11 192.168.107.133 user=alexsb12
第三种方式
[db:vars] #表示组的参数
user=alexsb13
第四种方式
- hosts: db vars: - user: alexsb14 tasks: - name: create{ { user }} user: name={ { user}}
第五种传参方式
- hosts: db tasks: - name: sum shell: echo 7+8|bc register: user - name: createuser user: name={ {user.stdout}}
传参方式的优先级 :-e > playbook vars > hosts文件