软件相关模块

rpm 和yum 的区别:

rpm: redhat package manager ;yum可以解决依赖关系

yum 源配置:

cat /etc/yum.repos.d/epel.repo(查看目录)

[epel]
name=Extra Packages for Enterprise Linux - $basearch #名字
baseurl=http://mirrors.aliyun.com/epel/7/$basearch #rpm源的地址,可以写http,https,ftp,Samba,file:
failovermethod=priority
enabled= # 是否开启,1代表开启,0表示关闭
gpgcheck= #是否校验签名,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:

pip install 安装包
pip freeze > a.txt 将python的环境打包到文件中
pip install -r a.txt 安装文件中的包
pip list 查看所有的以安装成功的包
ansible web -m pip -a 'name=flask' # 安装flask模块

service:

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

计划任务:cron

* * * * * job
分 时 日 月 周 任务
*/ * * * job 每隔两个小时
, * * * job 12点和13点
- * * * job 12点到17点
-/ * * ,,, 周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' # 禁用计划任务,以#表示禁用

用户相关

user:

用户:
管理员 root
普通用户
系统用户 不能登录 - centos7 - centos6
登录用户 可以登录 - centos7 - centos6
用户组:
管理员组 root
系统用户组 - centos7 - centos6
登录用户组 - centos7 - centos6 -d 指定用户的家目录
-g 指定用户的组
-G 执行用户的附加组
-s 指定登录后使用的shell
-r 创建一个系统组
useradd -r wusir 创建系统用户, 从999倒序
useradd -s /sbin/nologin alexsb 创建的是普通用户,从1000开始升序
useradd -d /opt/alexsb2 alexsb2 创建用户时指定用户的家目录
useradd -u 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 - /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'

ansible 剧本

yaml:

是一个编程语言
xml 是用来写配置文件的一个语言
ini ;yaml
字典: key: value
列表: [] -
后缀名 yaml yml

ansible-playbook命令格式:

执行顺序: 从上往下

特性:幂等性 不管执行多少遍,结果都是一样的

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 +|bc
register: user
- name: createuser
user: name={{user.stdout}}

传参方式的优先级 :-e > playbook vars > hosts文件

ansible-2的更多相关文章

  1. 如何利用ansible callback插件对执行结果进行解析

    最近在写一个批量巡检工具,利用ansible将脚本推到各个机器上执行,然后将执行的结果以json格式返回来. 如下所示: # ansible node2 -m script -a /root/pyth ...

  2. 《Ansible权威指南》笔记(2)——Inventory配置

    四.Inventory配置ansible通过Inventory来定义主机和组,使用时通过-i指定读取,默认/etc/ansible/hosts.可以存在多个Inventory,支持动态生成.1.定义主 ...

  3. useful Ansible commands

    This article includes some useful Ansible commands. I will try to write blogs by English. You may wa ...

  4. 《Ansible权威指南》笔记(4)——Playbook

    七.Playbook1.语法特性如下:(1)"---"首行顶格开始(2)#号注释(3)缩进统一,不同的缩进代表不同的级别,缩进要对齐,空格和tab不能混用(4)区别大小写,键值对k ...

  5. 《Ansible权威指南》笔记(3)——Ad-Hoc命令集,常用模块

    五.Ad-Hoc命令集1.Ad-Hoc命令集通过/usr/bin/ansible命令实现:ansible <host-pattern> [options]    -v,--verbose  ...

  6. 《Ansible权威指南》笔记(1)——安装,ssh密钥登陆,命令

    2016-12-23 读这本<Ansible权威指南>学习ansible,根据本书内容和网上的各种文档,以及经过自己测试,写出以下笔记.另,这本书内容很好,但印刷错误比较多,作者说第二版会 ...

  7. 自动化运维工具ansible部署以及使用

    测试环境master 192.168.16.74webserver1 192.168.16.70webserver2 192.168.16.72安装ansiblerpm -Uvh http://ftp ...

  8. Ansible Ubuntu 安装部署

    一.安装: $ sudo apt-get install ansible 二.配置: a.基本配置 $ cd /etc/ansible/ $ sudo cp hosts hosts_back 备份一个 ...

  9. Ansible 模块命令介绍

    copy模块: 目的:把主控端/root目录下的a.sh文件拷贝到到指定节点上 命令:ansible 10.1.1.113 -m copy -a 'src=/root/a.sh dest=/tmp/' ...

  10. 用Vagrant和Ansible搭建持续交付平台

    这是一个关于Vagrant的学习系列,包含如下文章: Vagrant入门 创建自己的Vagrant box 用Vagrant搭建Jenkins构建环境 用Vagrant和Ansible搭建持续交付平台 ...

随机推荐

  1. Eclipse + Tomcat 环境下配置 JSTL 标签

    1.下载 jar 包. 网址:http://archive.apache.org/dist/jakarta/taglibs/standard/binaries/ 2.解压后将jstl.jar和stan ...

  2. leetcode: 字符串

    1. palindrome-partitioning Given a string s, partition s such that every substring of the partition ...

  3. Selenium入门15 截图

    截图方法: 1 保存截图 get_screenshot_as_file('保存路径\\文件名.png')     #有一个\是转义符 2 保存截图 save_screenshot('保存路径\\文件名 ...

  4. HDU 3639 Hawk-and-Chicken(强连通分量+缩点)

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/u013480600/article/details/32140501 HDU 3639 Hawk-a ...

  5. Pascal之Hello World

    Pascal入门篇. 平台:Windows 7 ultimate x64 工具:Free Pascal 下载安装,界面如下: 右键属性,选择“437(OEM-美国)”,重新打开程序,乱码消失.     ...

  6. Python 语法基础

    之所以学习Python,第一个是他比较简单,寒假时间充裕,而且听说功能也很不错,最重要的是,我今年的项目就要用到它. 而且刘汝佳的书上说到,一个好的Acmer要是不会一点Python那就是太可惜了.废 ...

  7. 在什么情况下采用BFC

    介绍BFC的博文有很多,下面,我就从另一个角度解释一下“在什么情况下会使用BFC” 以下仅代表我的个人看法,如果有错误的地方,还希望大家能告诉我,以免我在错误的道路上越走越远. 一.BFC是什么 Bl ...

  8. LeetCode(Two Sum)

    一.题目要求 Given an array of integers, return indices of the two numbers such that they add up to a spec ...

  9. jQuery与Aiax应用

    Ajax(一部JavaScript和XML) 优势: ①不需要插件支持 ②优秀的用户体验:能在不刷新整个页面的前提下更新数据,这使得web应用程序能更为迅速地回应用户的操作. ③提高web程序的性能: ...

  10. 使用JavaScript动态的绑定、解绑 a 标签的onclick事件,防止重复点击

    页面上的 a 标签如下: <a class="more" style="cursor: pointer;" id="commentMore&qu ...