普通实例创建:
$machine_model = ' t3.large '; 机器型号
$value = ' 172.31.50.100 '; 指定启动机器IP
$data->subnet_id = 'subnet-0f005dd4fe9399f6c'; //nat_route_60 网段id
执行命令:
aws ec2 run-instances --key-name qn_flight_manage --image-id ami-06e01347d0a15cf95 --count 1 --instance-type '.$machine_model.' --security-group-ids sg-08f73a31b52c3cc1a sg-b7dc7ed0 --private-ip-address '.$value.' --subnet-id '.$data->subnet_id;
竞价实例:
生成一个json 文件
$json = '{
"ImageId":"ami-06e01347d0a15cf95", //启动机器镜像id
"InstanceType":"t3.large",//机器型号"
KeyName":"qn_flight_manage",
"EbsOptimized": true, // 是否启用Ebs优化
"NetworkInterfaces" :[{
"DeviceIndex":0,
"Groups":["sg-b7dc7ed0","sg-08f73a31b52c3cc1a"], // 安全组Id
"PrivateIpAddress":"172.31.50.100 ", //机器ip
"SubnetId":"subnet-0f005dd4fe9399f6c", //网段id
}] } ';
执行命令中的 file 是上边生成json文件的地址:
aws ec2 request-spot-instances --availability-zone ap-southeast-1b --instance-count 1 --spot-price 0.07 --type "persistent" --instance-interruption-behavior "stop" --launch-specification file:///export/webdata/test1.json'
因为后续创建docker命令 需要把IP写入 host 文件
命令:
echo "172.31.50.203" >> /etc/ansible/hosts // 因为ip 必须得拿双引包着 'echo '.'"'.$ip'"'.' >> /etc/ansible/hosts'
执行脚本命令:
ansible 172.31.50.107 -m shell -a '/export/static/shell/init/gdsR.sh' //命令中的引号不可缺 'ansible '.$ip.' -m shell -a '."'".$Init['machine_init_sh']."'";
新机器 不存在脚本文件的话
mount 挂载
ansible 172.31.50.107 -m shell -a 'mount -t nfs -o soft,intr,timeo=15 172.31.20.61:/export/static/ /export/static/' //命令中的引号不可缺
创建 docker 容器 检查 镜像 是否存在
ansible 172.31.60.10 -m shell -a 'docker images haproxy ' //检查 当前的 ip 机器上是否有 需要用的 docker 镜像文件 有就可以直接去创建 没有则需要从 docker库 pull
命令:
ansible 172.31.60.10 -m shell -a " docker images pull 172.31.50.100:5000/operation_platform:20210407" //命令中的引号不可缺 ip地址是固定值 172.31.50.100:5000 冒号是英文状态下
创建 容器命令
metasearch 启动
docker run --restart=always -it -d --name metasearch_20210331 -p 11000:22 -p 10100:8101 -p 10800:9998 -p 10900:9999 -p 9051-9059:9051-9059 -v /export/logs:/export/logs -v /export/local_cache_share:/export/share --privileged=true metasearch:20210331 /usr/sbin/init
ha启动:
docker run -it -d --name haproxy_20210204 -p 80:80 -p 80:80/udp -p 443:443 -p 443:443/udp -p 8000:8000 -v /var/log/haproxy:/var/log/haproxy --privileged=true --network docker1 172.31.50.100:5000/ha:v1 /usr/sbin/init
运营后台容器启动:
docker run --name itt6ojon_20210401-it -p 10022:22 -p 10080:80 -v /export/static:/export/static -v /export/share:/export/share -v /tmp:/tmp --privileged=true -d itt6ojon:20210401 /usr/sbin/init
运维平台容器启动:
docker run --name operation_platform -it -p 10022:22 -p 10080:80 -v /export/static:/export/static -v /export/share:/export/share -v /export/s3_storage:/export/s3_storage --privileged=true -d operation_platform:20210407 /usr/sbin/init
docker指定 IP创建
docker run --restart=always -it -d --name metasearch_20210623_bg --ulimit nofile=1024000 --ulimit core=-1 --ulimit nproc=-1 --ulimit stack=-1 --network docker_network --ip 172.50.0.100 -v /export/logs:/export/logs -v /export/local_cache_share:/export/share --privileged=true 172.31.50.100:5000/metasearch:20210623_bg /usr/sbin/init
aws机器stop 动作命令
ansible 172.31.50.100 -m shell -a " aws ec2 stop-instances --instance-ids i-09e95ea04460ea5da " //注 双引号保留 我这里拿的是 id
aws机器 停止命令
ansible 172.31.60.10 -m shell -a "aws ec2 terminate-instances --instance-ids i-0fd599e1d8279d70a " //注 双引号保留 我这里拿的是 id
容器停止命令
ansible 172.31.60.10 -m shell -a "docker stop 82c212c839f5 " //注 双引号保留 我这里拿的是 id
蓝色字体 基本都是可以引入的